Bài giảng Kỹ thuật lập trình: Bài 8 do TS. Đào Trung Kiên biên soạn trình bày các nội dung sau: Giới thiệu C++, khái niệm mới ít nhỏ hơn, chương trình C++ đầu tiên, lớp và đối tượng, phạm vi của các thành phần, khai báo và sử dụng lớp,. | Bài 8: Lập trình hướng đối tượng 1 EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Giới thiệu C++ 2 EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Sơ lược về C++ Bổ sung các tính năng mới so với C: Hướng đối tượng (OOP) Lập trình khái quát (template) Nhiều thay đổi nhỏ khác Một số thay đổi nhỏ: File mã nguồn thường dùng đuôi .cpp Hàm main() có thể có kiểu trả về là void: void main() { } Có sẵn kiểu bool và các giá trị false, true: bool b1 = true, b2 = false; Biến, hằng trong C++ có thể được khai báo ở bất kỳ đâu trong hàm (không giới hạn ở đầu hàm như C), kể cả trong vòng lặp for Phép chuyển kiểu có thể viết như cú pháp gọi hàm: int() 3 Dùng // để chú thích đến hết dòng: dien_tich = PI*r*r; // PI = Không cần thêm các từ khoá enum, struct, union khi khai báo biến EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Vài khái niệm mới ít nhỏ hơn Kiểu tham chiếu (reference) : có bản chất con trỏ int a = 5; int& b = a; b = 10; // a int& foo(int& x) { x = 2; return int y = 1; foo(y); foo(y) = 3; = 10 x; } // y = 2 // y = 3 Namespace namespace ABC { int x; int setX(int y) } { x = y; } ABC::setX(20); int z = ABC::x; using namespace ABC; setX(40); 4 EE3490: Kỹ thuật lập trình – HK1 2017/2018 TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội Vài khái niệm mới ít nhỏ hơn (tiếp) Cấp phát bộ nhớ động Dùng các toán tử new và new[] để cấp phát Toán tử delete và delete[] để huỷ delete a; delete[] c; Chú ý: không được dùng lẫn lộn malloc()/free() với new/delete: Cấp phát bằng malloc() thì phải dùng free() để huỷ Cấp phát bằng new thì phải dùng delete để huỷ Định nghĩa chồng hàm (hàm cùng tên, khác tham số): int* a = new int; float* b = new float(); long* c = new long[5]; 5 int sum(int a, int b) int sum(int a, int b, int c) double sum(double a, double