Để học một ngôn ngữ lập trình theo cách học bình thường thì ta phải đọc từng cuốn sách từng chi tiết, đọc cách diễn giải của người khác để rồi đó ta hiểu và vận dụng nó. Nhưng điều đó sẽ hạn chế việc chúng ta học từ nhiều người khác. Các bạn có thể tìm được từ nhiều nguồn trên mạng viết về ngôn ngữ C++.
Tôi sẽ đưa ra cách học của mình. Học ngôn ngữ C++ thông qua những từ khóa, những nội dung có trong ngôn ngữ C++. Nắm được hết những điều này thì bạn đã học thành thạo được ngôn ngữ C++.
Mỗi ngày 1 bài sẽ giúp bạn thành thạo ngôn ngữ lập trình C++.
Ngôn ngữ lập trình C
Ngôn ngữ lập trình C++: iostream, iomanip,v.v..
1. Dữ liệu, đối tượng (Object) và lớp đối tượng (Class).
2. Tạo lập, sử dụng, hủy đối tượng: từ khóa new, delete.
3. Nhập xuất:
cout<<(ostream), cin>>(istream).
setw, left, right, setfill, set, dec, oct, hex, setiosflag, setprecision.
(Thư viện iomanip)
4. Tổ chức các tập tin mã nguồn C++. Sơ đồ liên kết: UML lớp và đối tượng. (*.h, *.cpp)
5. Xử lý chuổi: thường: string; mở rộng UFT: wchar_t, wstring.
6. Thuộc tính và phướng thức:
Từ khóa: public, protected, private. (C++,C#: mặc định private; Java mặc định: public)
Phương thức tạo lập (Constructor).
Phương thức hủy (Destructor).
7. Toán tử và viết chồng toán tử: Operator overloanding.
8. Tham số: Tham trị(tham số giá trị) và Tham chiếu(tham số địa chỉ, tham biến). Đối số là con trỏ.
9. Ép kiểu:
Ép kiểu chuẩn (C - style casting)
Ép kiểu tĩnh (static_cast)
Ép kiểu động (dynamic_cast)
Ép kiểu hằng (const_cast)
Ép kiểu dịch lại (reinterpret_cast)
10. Từ khóa: static, const.
Đối tượng hằng và phương thức hằng.
11. Từ khóa: Virtual, friend.
Phương thức ảo, phương thức hủy ảo, kế thừa ảo.
Phương thức bạn, lớp bạn.
Lớp thuần ảo. (interface).
12. HAS-A, IS-A, các kiểu kế thừa public, protected, private.
Quan hệ bao hàm/ bộ phận (HAS-A): phụ thuộc và độc lập. (chứa hoặc kế thừa private/protected)
Quan hệ tổng quát hóa/ đặc biệt hóa (IS-A): sử dụng kế thừa public.
Quan hệ bạn (từ khóa friend).
Quan hệ phụ thuộc.
13. Diamond problem: Vấn đề hình thoi/ vấn đề kim cương trong OOP.
Kế thừa ảo.
14. Stream: #include <iostream>; <ostream>; <fstream>; <sstream>;
ios:
istream (cin): ifstream; istringstream; iostream.
ostream (cout): ofstream; ostringstream; iostream.
iostream: fstream; stringstream
15. Lập trình với tập tin:
ifstream, ofstream, fstream.
Tập tin văn bản: Thô (ASCII-ANSI text); Mở rộng (Unicode(UTF-16); UTF-8;UTF-32).
Stream: badbit, eofbit, failbit, goodbit; eof(), fail(), bad(), good(), clear(); tellg(), seekg(); tellp(), seekp().
16. Lập trình Template trong C++:
Template cài đặt thường.
Template cài đặt riêng biệt.
Lập trình cho trình biên dịch. (Metaprogramming).
Giải quyết lỗi liên kết tập tin *.h, *.cpp (tách biệt 2 phần: khai báo và cài đặt) trong template.
Giải quyết lỗi khai báo và cài đặt friend trong template.
17. Thư viện các lớp thông dụng (STL):
Container:
1. Sequence Container: vector, deque, list.
2. Associative Container:
Set: set, multiset, hash_set, hash_multiset.
Map: map, multimap, hash_map, hash_multimap. (typedef pair<x,y>)
3. Container Adapter: stack, queue, priority_queue.
Iterator: Duyệt tiến, lùi, vị trí ngẫu nhiên,v.v...
Algorithm:#include <algorithm> <numberic>
Số phức: #include <complex>
18. Xử lý lỗi và ngoại lệ:
try-throw-catch.
Phương pháp RAII (Resource Acquisition Is Initialization) do Bjarne Stroustrup đề nghị:
- Đưa các biến có sử dụng các tài nguyên vào bên trong các lớp. Phương thức hủy của các lớp sẽ đàm nhiệm vai trò giải phóng tài nguyên.
19. Design Pattern.
20. Dynamic Library:__declspec(dllexport), __declspec(dllimport): .lib và .dll
21. Static library: .lib
22. Object: .obj
0 nhận xét:
Đăng nhận xét