C++ CƠ BẢN
💻💻💻 MỤC LỤC 💻💻💻
1.1 Những ngôn ngữ khác nhau cho những mục đích khác nhau
1.1.1 So sánh ngôn ngữ tự nhiên với ngôn ngữ lập trình (1)
1.1.2 So sánh ngôn ngữ tự nhiên với ngôn ngữ lập trình (2)
1.1.3 So sánh ngôn ngữ tự nhiên với ngôn ngữ lập trình (3)
1.2 Bắt đầu với chương trình đầu tiên của bạn
1.2.1 Bắt đầu với chương trình đầu tiên của bạn (1)
1.2.2 Bắt đầu với chương trình đầu tiên của bạn (2)
1.2.3 Bắt đầu với chương trình đầu tiên của bạn (3)
1.2.4 Bắt đầu với chương trình đầu tiên của bạn (4)
1.2.5 Bắt đầu với chương trình đầu tiên của bạn (5)
1.2.6 Bắt đầu với chương trình đầu tiên của bạn (6)
1.3 Giá trị nguyên, biến kiểu nguyên và comment
1.3.1 Số và làm thế nào máy tính thấy chúng ?
1.3.5 Comment trong source code (1)
1.3.6 Comment trong source code (2)
1.4 Số và các toán tử
1.4.16 Toán tử pre- và post- (1)
1.4.17 Toán tử pre- và post- (2)
1.4.18 Toán tử pre- và post- (Độ ưu tiên)
1.5 Character
1.5.3 Giá trị của kiểu character
1.5.7 Sử dụng giá trị kiểu char như giá trị kiểu int
1.6 Flow Control
1.6.1 Hỏi và đáp giữa chương trình và máy tính
1.6.5 Câu hỏi: x lớn hơn hoặc bằng y ?
1.6.6 Câu hỏi: x nhỏ hơn hoặc bằng y ?
1.6.7 Sử dụng câu trả lời như thế nào ?
1.6.8 Bảng độ ưu tiên các toán tử
1.6.9 Điều kiện và hành động có điều kiện
1.7 Xử lý input, output
2.1 If và else – câu lệnh có điều kiện thường dùng nhất
2.1.1 Câu lệnh có điều kiện (1)
2.1.2 Câu lệnh có điều kiện (2)
2.2 Thêm một số kiểu dữ liệu và cách sử dụng
2.2.1 Không phải chỉ có int là kiểu số nguyên (1)
2.2.2 Không phải chỉ có int là kiểu số nguyên (2)
2.2.3 Không phải chỉ có int là kiểu số nguyên (3)
2.2.4 Không phải chỉ có int là kiểu số nguyên (4)
2.2.5 Kiểu Float và đặc thù của nó
2.3 Vòng lặp
2.3.1 Hai chương trình đơn giản (1)
2.3.2 Hai chương trình đơn giản (2)
2.3.3 Hai chương trình đơn giản (3)
2.3.8 Vòng lặp “do … while” (1)
2.3.9 Vòng lặp “do … while” (2)
2.4 Các phép toán logic
2.4.1 Máy tính và logic của nó
2.4.6 Thao tác với bit đơn lẻ (1)
2.4.7 Thao tác với bit đơn lẻ (2)
2.4.8 Thao tác với bit đơn lẻ (3)
2.4.9 Thao tác với bit đơn lẻ (4)
2.4.10 Thao tác với bit đơn lẻ (5)
2.4.11 Thao tác với bit đơn lẻ (6)
2.4.12 Thao tác với bit đơn lẻ (7)
2.5 switch – case
2.6 Mảng (Array)
2.6.5 Các kiểu dữ liệu của Mảng
2.7 Structure
2.7.1 Tại sao cần structure ? (1)
3.1 Con trỏ (Pointer)
3.2 Pointer và array
3.2.1 So sánh pointer và array
3.2.2 Phép toán số học trên pointer (1)
3.2.3 Phép toán số học trên pointer (2)
3.2.4 Phép toán số học trên pointer (3)
3.3 Giới thiệu về hàm (Function)
3.4 Khai báo và đinh nghĩa hàm
3.4.1 Khai báo và định nghĩa hàm (1)
3.4.2 Khai báo và định nghĩa hàm (2)
3.4.6 Lời gọi hàm (invocation syntax)
3.5 Truyền dữ liệu cho hàm và lấy dữ liệu từ hàm
3.5.3 Truyền tham chiếu cho hàm (1)
3.5.4 Truyền tham chiếu cho hàm (2)
3.5.5 Truyền tham chiếu cho hàm (3)
3.6 Tham số mặc định
3.7 Hàm nội tuyến
3.7.1 Giải phẫu một lời gọi hàm
3.8 Nạp chồng hàm
3.8.1 Các công cụ khác nhau cho những việc khác nhau
3.8.2 Cơ chế hoạt động của nạp chồng hàm (1)
3.8.3 Cơ chế hoạt động của nạp chồng hàm (2)
3.8.4 Giới thiệu về toán tử điều kiện
3.9 Cấp phát động bộ nhớ
3.9.1 void – kiểu dữ liệu đặc biệt
4.1 Mảng nhiều chiều
4.2 Chuyển đổi kiểu dữ liệu
4.2.1 Chuyển đổi kiểu dữ liệu là gì ?
4.2.2 Chuyển đổi kiểu dữ liệu ngầm định (Implicit conversions)
4.2.3 Chuyển đổi kiểu dữ liệu tường minh (Explicit conversions)
4.2.4 Được và mất khi chuyển đổi kiểu dữ liệu (1)
4.2.5 Được và mất khi chuyển đổi kiểu dữ liệu (2)
4.2.6 Được và mất khi chuyển đổi kiểu dữ liệu (3)
4.2.7 Được và mất khi chuyển đổi kiểu dữ liệu (4)
4.2.8 Được và mất khi chuyển đổi kiểu dữ liệu (5)
4.3 String
4.3.10 Chi tiết hơn về so sánh string
4.3.11 Tìm một chuỗi trong chuỗi khác
4.3.12 Kích thước thực của string
4.3.13 Kiểm soát kích thước của string
4.3.14 Kiểm soát nội dung của string
4.3.16 Chèn string (Inserting )
4.3.17 Chỉ định string (Assigning)
4.3.18 Thay thế string (Replacing)
4.3.20 Hoán đổi nội dung của 2 string
4.4 Name spaces
4.4.1 Name spaces là tất cả những gì xung quanh chúng ta
4.4.2 Giới thiệu về name spaces trong C++
4.4.3 Định nghĩa một name space
5.1 Các khái niệm cơ bản về lập trình hướng đối tượng
5.1.1 Lớp và đối tượng trong đời thực
5.1.3 Khái niệm đối tượng (object)
5.1.5 Các đối tượng có những gì ?
5.1.6 Tất cả những thứ này để làm gì ?
5.2 Ngăn xếp (Stack)
5.2.6 Ưu điểm và nhược điểm của stack theo phương pháp hướng thủ tục
5.2.7 Stack theo phương pháp hướng đối tượng (1)
5.2.8 Stack theo phương pháp hướng đối tượng (2)
5.2.9 Stack theo phương pháp hướng đối tượng (3)
5.2.10 Stack theo phương pháp hướng đối tượng (4)
5.2.11 Stack theo phương pháp hướng đối tượng (5)
5.3 Giải phẫu class
5.3.1 Các thành phần của class
5.3.4 Ghi đè tên thành phần của class
5.3.7 Hàm khởi tạo (constructor)
5.3.8 Nạp chồng hàm khởi tạo (1)
5.3.9 Nạp chồng hàm khởi tạo (2)
5.3.10 Hàm khởi tạo sao chép (Copying constructors)
5.3.11 Rò rỉ bộ nhớ (Memory leaks)
5.4 Các thành phần Static
5.4.4 Các thành phần static của class
5.4.5 Biến static của class (1)
5.4.6 Biến static của class (2)
5.4.7 Biến static của class (3)
5.4.8 Quan hệ giữa các thành phần static và non-static
5.4.9 Thành phần static truy cập vào thành phần static
5.4.10 Thành phần static truy cập vào thành phần non-static
5.4.11 Thành phần non-static truy cập vào thành phần static
5.4.12 Thành phần non-static truy cập vào thành phần non-static
5.5 Con trỏ trỏ đến đối tượng và đối tượng bên trong đối tượng
5.5.1 Con trỏ trỏ đến đối tượng
5.5.2 Truy cập biến thành viên của đối tượng thông qua con trỏ
5.5.3 Truy cập hàm thành viên của đối tượng thông qua con trỏ
5.5.4 Cơ chế lựa chọn hàm khởi tạo
5.5.5 Mảng các con trỏ trỏ đến đối tượng (1)
5.5.6 Mảng các con trỏ trỏ đến đối tượng (2)
5.5.7 Đối tượng bên trong đối tượng (1)
5.5.8 Đối tượng bên trong đối tượng (2)
6.1 Phân cấp class
6.1.1 Định nghĩa một phân lớp đơn giản (1)
6.1.2 Định nghĩa một phân lớp đơn giản (2)
6.1.3 Định nghĩa một phân lớp đơn giản (3)
6.1.4 Định nghĩa một phân lớp đơn giản (4)
6.1.5 Định nghĩa một phân lớp đơn giản (5)
6.1.6 Định nghĩa một phân lớp đơn giản (6)
6.2 Kế thừa và vấn đề tương thích kiểu
6.2.1 Tương thích kiểu – trường hợp đơn giản nhất
6.2.2 Tương thích kiểu – trường hợp phức tạp hơn (1)
6.2.3 Tương thích kiểu – trường hợp phức tạp hơn (2)
6.2.4 Tương thích kiểu – ép kiểu tĩnh
6.2.5 Tương thích kiểu – quay lại với Pet
6.2.6 Tương thích kiểu – ép kiểu động
6.2.7 Tương thích kiểu – trường hợp cuối cùng
6.3 Đa hình và hàm ảo
6.3.1 Ghi đè phương thức trong lớp dẫn xuất (1)
6.3.2 Ghi đè phương thức trong lớp dẫn xuất (2)
6.3.3 Ghi đè phương thức trong lớp dẫn xuất (3)
6.3.4 Ghi đè phương thức trong lớp dẫn xuất (4)
6.3.5 Ghi đè phương thức trong lớp dẫn xuất (5)
6.4 Sử dụng đối tượng làm tham số và ép kiểu động
6.4.1 Truyền vào một đối tượng cho tham số của hàm
6.4.2 Truyền vào một đối tượng theo kiểu tham trị
6.4.3 Truyền vào một đối tượng của lớp dẫn xuất (1)
6.4.4 Truyền vào một đối tượng của lớp dẫn xuất (2)
6.4.5 Toán tử ép kiểu động (dynamic_cast) (1)
6.4.6 Toán tử ép kiểu động (dynamic_cast) (2)
6.4.7 Toán tử ép kiểu động (dynamic_cast) (3)
6.5 Bổ sung một số vấn đề liên quan đến khởi tạo đối tượng
6.5.1 Hàm khởi tạo sao chép – copying constructors (1)
6.5.2 Hàm khởi tạo sao chép – copying constructors (2)
6.5.3 Hàm khởi tạo sao chép – copying constructors (3)
6.5.4 Hàm khởi tạo sao chép – copying constructors (4)
6.5.5 Hàm khởi tạo sao chép – copying constructors (5)
6.5.6 Hàm khởi tạo sao chép – copying constructors (6)
6.5.7 Hàm khởi tạo mặc định – default constructors (1)
6.5.8 Hàm khởi tạo mặc định – default constructors (2)
6.5.9 Hàm khởi tạo mặc định – default constructors (3)
6.5.10 Kết hợp nhiều class để tạo ra class mới – composition (1)
6.5.11 Kết hợp nhiều class để tạo ra class mới – composition (2)
6.5.12 Kết hợp nhiều class để tạo ra class mới – composition (3)
6.6 Từ khóa const
6.6.6 Con trỏ hằng trỏ đến hằng số
6.6.7 Tham số của hàm là hằng số (1)
6.6.8 Tham số của hàm là hằng số (2)
6.6.9 Giá trị trả về của hàm là hằng số
6.6.12 Phương thức hằng của class
6.7 Hàm bạn và lớp bạn trong C++
7.1 Cơ bản về nạp chồng toán tử
7.1.3 Tổng quan nội dung về nạp chồng toán tử
7.1.12 Code toán tử chỉ mục cho stack (1)
7.1.13 Code toán tử chỉ mục cho stack (2)
7.2 Kiểu enum
7.2.1 Kiểu enum dùng để làm gì ? (1)
7.2.2 Kiểu enum dùng để làm gì ? (2)
7.2.3 Kiểu enum dùng để làm gì ? (3)
7.2.4 Làm thế nào để định nghĩa kiểu enum ?
7.2.5 Sử dụng kiểu enum như thế nào ? (1)
7.2.6 Sử dụng kiểu enum như thế nào ? (2)
7.2.7 Sử dụng kiểu enum như thế nào ? (3)
7.2.8 Sử dụng kiểu enum như thế nào ? (4)
7.2.9 Sử dụng kiểu enum như thế nào ? (5)
7.2.10 Sử dụng kiểu enum như thế nào ? (6)
7.2.11 Sử dụng kiểu enum như thế nào ? (7)
7.3 Chi tiết hơn về nạp chồng toán tử
7.3.2 Số lượng tham số của toán tử
7.3.3 Điều gì chúng ta không được làm ?
7.3.10 Toán tử tăng và giảm dạng tiền tố
7.3.11 Toán tử tăng và giảm dạng hậu tố
Soạn lại từ nguồn https://education.cppinstitute.org