intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Hữu Thể

Chia sẻ: Sơn Nam | Ngày: | Loại File: PDF | Số trang:27

62
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Lập trình hướng đối tượng - Chương 2: Các mở rộng của C++" cung cấp cho người học các kiến thức: Lịch sử ngôn ngữ C, lịch sử ngôn ngữ C++, lựa chọn ngôn ngữ C++, các từ khóa mới của C++, cách ghi chú thích,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Hữu Thể

  1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Nguyễn Hữu Thể CHƯƠNG 2 CÁC MỞ RỘNG CỦA C++ 1
  2. Nội dung  Lịch sử ngôn ngữ C  Cách chuyển đổi kiểu dữ liệu  Lịch sử ngôn ngữ C++  Vị trí khai báo biến  Lựa chọn ngôn ngữ C++  Kiểu struct  Các từ khóa mới của C++  Toán tử định phạm vi  Cách ghi chú thích  Toán tử new và delete  Dòng nhập/xuất chuẩn  Hàm inline  Cách chuyển đổi kiểu dữ liệu  Phép tham chiếu 2 Object-oriented programming
  3. 1. Lịch sử ngôn ngữ C  Tiến hóa từ hai ngôn ngữ lậptrình  BCPL và B: Các ngôn ngữ “phi kiểu”  Dennis Ritchie (Bell Laboratories, AT&T)  Ngôn ngữ phát triển hệ điều hành UNIX  Không phụ thuộc phần cứng  Tính khả chuyển  1989: ANSI chuẩn hóa (ANSI-C)  1990: Công bố chuẩn ANSI và ISO  ANSI/ISO 9899: 1990 3 Object-oriented programming
  4. 2. Lịch sử ngôn ngữ C++  Mở rộng, tiến hóa từ C  Bjarne Stroustrup (Bell Laboratories)  Đầu những năm 1980: “C with classes”  1984: Tên C++  1987: “The C++ Programming Language” 1st Edition  1997: “The C++ Programming Language” 3rd Edition  Chuẩn hóa quốc tế: ANSI/ISO 1996  Bổ sung các đặc tính hỗ trợ:  Lập trình hướng đối tượng  Lập trình tổng quát  Lập trình toán học,...  Ngôn ngữ “lai” 4 Object-oriented programming
  5. Lựa chọn ngôn ngữ C++  Đáp ứng các yêu cầu:  Gần gũi với phần cứng  Hiệu suất cao  Tương đối thân thiện với người lập trình  Chuẩn hóa quốc tế (tương lai vững chắc)  Thế mạnh tuyệt đối của ANSI-C:  Phổ biến cho hầu hết các nền vi xử lý, vi điều khiển, DSP  Phổ biến cho “mỗi người lập trình” trên thế giới  Thế mạnh tuyệt đối của ANSI/ISO C++:  Lập trình hướng đối tượng  Lập trình tổng quát (template)  Lập trình toán học (dữ liệu trừu tượng và nạp chồng toán tử) 5 Object-oriented programming
  6. 3. Các mở rộng của C++  Các từ khóa mới của C++  Cách ghi chú thích  Dòng nhập/xuất chuẩn  Cách chuyển đổi kiểu dữ liệu  Vị trí khai báo biến  Các biến const  Struct, union và enum  Toán tử định phạm vi (scope resolution operator)  Toán tử new và delete  Hàm inline  Các giá trị tham số mặc định  Phép tham chiếu  Phép đa năng hóa (Overloading) 6 Object-oriented programming
  7. Các từ khóa mới của C++  Một số từ khóa (keyword) mới đã được đưa vào C++ ngoài các từ khóa có trong C. 7 Object-oriented programming
  8. Cách ghi chú thích  C++ chấp nhận hai kiểu chú thích.  C là /*…*/  C++ là //…  VD: /*Chương trình in các số từ 0 đến 9.*/ #include int main() { int i; for(i = 0; i < 10 ; ++ i) // 0 - 9 cout
  9. Dòng nhập/xuất chuẩn  Trong C: printf() và scanf().  Trong C++: cout và cin.  Ví dụ: Nhập vào hai số. Tính tổng và hiệu của hai số. #include int main(){ int X, Y; cout>X; cout>Y; cout
  10. Cách chuyển đổi kiểu dữ liệu  Hình thức chuyển đổi kiểu trong C tương đối tối nghĩa  C++ có cách chuyển đổi kiểu giống như một lệnh gọi hàm. #include int main(){ int X = 200; long Y = (long) X; //Chuyển đổi kiểu theo cách của C long Z = long(X); // Chuyển đổi kiểu theo cách của C++ cout
  11. Vị trí khai báo biến  Trong C:  Tất cả các khai báo toàn cục phải đặt trước tất cả các hàm  Các khai báo cục bộ phải đặt trước tất cả các lệnh.  Ngược lại trong C++:  Cho phép khai báo linh hoạt bất kỳ vị trí nào  Có thể xen kẽ khai báo dữ liệu với các câu lệnh thực hiện. 11 Object-oriented programming
  12. 1: #include 18: case ‘-’: 2: int main() 19: cout
  13. Kiểu struct  Trong C++: tên của struct và union giống như khai báo bằng lệnh typedef.  Trong C: struct Complex{ float Real; float Imaginary; }; ………………….. struct Complex C;  Trong C++, vấn đề trở nên đơn giản hơn: struct Complex{ float Real; float Imaginary; }; ………………….. Complex C; 13 Object-oriented programming
  14. Toán tử định phạm vi (scope resolution operator)  Ký hiệu là ::  Dùng truy xuất một phần tử bị che bởi phạm vi hiện thời. #include int X = 5; int main() { int X = 16; cout
  15. Toán tử new và delete  C cấp phát động bộ nhớ dùng hàm thư viện như malloc(), calloc() và free().  C++ dùng hai toán tử new và delete VD: Cấp phát vùng nhớ động của C VD: Cấp phát vùng nhớ động của C++ int *P; int *P; P = malloc(sizeof(int)); P = new int; if (P==NULL) if (P==NULL) printf("Khong con du bo cout
  16. Toán tử new và delete (tt)  Toán tử new thay thế cho hàm malloc(), calloc() của C có cú pháp:  new type_name  new type_name initializer Trong đó :  type_name: kiểu dữ liệu được cấp phát.  initializer: giá trị khởi động của vùng nhớ được cấp phát. Nếu toán tử new cấp phát không thành công => trả về giá trị NULL.  Toán tử delete thay thế hàm free() của C, có cú pháp:  delete pointer  delete []pointer 16 Object-oriented programming
  17. Toán tử new và delete (tt)  Có thể vừa cấp phát vừa khởi  Cấp phát động cho mảng: động: int *P; int *P; P = new int[10]; //Cấp phát mảng 10 số P = new int(100); nguyên if (P!=NULL) if (P!=NULL) { { cout
  18. Hàm inline  Một chương trình có cấu trúc tốt sử dụng các hàm để chia nhỏ.  Việc gọi hàm sẽ đưa vào stack xử lý và sau đó giải phóng vùng nhớ  Làm chậm chương trình  C++ thêm từ khóa inline để loại việc gọi hàm.  Trình biên dịch không biên dịch hàm như một đoạn chương trình riêng  Chèn thẳng vào các chỗ mà hàm này được gọi. 18 Object-oriented programming
  19. Hàm inline inline float Cube(float S) { return S*S*S; } int main() { coutSide; cout
  20. Phép tham chiếu  Đối với hàm nhận tham số là con trỏ : void Swap(int *X, int *Y){ int Temp = *X; *X = *Y; *Y = *Temp; }  Để hoán đổi giá trị biến A và B thì gọi hàm: Swap(&A, &B);  Trong C++ dùng biến tham chiếu sẽ làm cho các hàm có thay đổi nội dung các tham số của nó. void Swap(int &X, int &Y){ int Temp = X; X = Y; Y = Temp ; } 20 Object-oriented programming
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2