bài giảng lập trình hướng đối tượng và c+
TR : : : 17209 TRÌNH : DÙNG CHO SV NGÀNH : - 2008 i Mô : Lp trình h tng và C++. : 2 : Khoa hc máy tính. : CNTT : 17209 C: 4 : K thut lp trình Pascal, K thut lp trình C. : c phng pháp lp trình h tng lp trình . - rng c lp trình h tng. - tng và l. - gói, th k, a hình. - B m TS LT BT KT : ++ 3 3 1.1 c l h tng 1.2 Gi thi ngôn ng C++ : 9 6 3 2.1 Cài t ngôn ng C++ 2.2 C trúc mt chng trình C++ 2.3 Ki d li c s 2.4 Quy t s dng t khóa, tên chu, tên t t. 2.5 Các ch th gán, so sánh, i kin n thì , 6 3 3 3.1 Khai báo hàm con, hàm chính. 3.2 Quy t ki d li, ki tr. 3.3 ngh ch hàm, tham s ng 3.5 . ++ 9 5 3 1 4.1 tng vào ra cout, cin 4.2 dòng d li lên màn hình 4.3 Nhp dòng d li t bàn phím 4.4 d dòng d li hi th 4.5 Vào ra v tp 18 8 9 1 75 45 30 0 0 0 ii 5.1 ngh tng 5.2 Khai báo l 5.3 Hàm thi lp, hu b 5.4 Thành ph t, hàm bn, l bn 5.5 ngh ch toán t Chng 6: Th k 9 6 3 6.1 L c s, l dn xu 6.2 Quy t tha k 6.3 Tng thích l c s và l d xu 6.4 n tha k, a tha k : 8 5 3 7.1 Hàm , ràng buc t, ng 7.2 a th : 13 6 6 1 8.1 Hàm b m 8.2 u khuy i c hàm b m 8.3 L b m : 2. Ph Vn . K thut lp trình h tng. NXB KHKT. 1998 3 liên quan. : - thc hành. - . B / /20 iii CHNG I: C++ 1 1. S 1 1.1 ( ) 1 1.2 1 1.3 3 1.4 ng 4 2. ng 5 2.1 u tng ADT(Astract Data Type) 5 2.2 ng (Objects) p (Classes) 5 2.3 a (Inheritance) 6 2.4 Dynamic Binding () ( ) 6 3. Ngôn ng ++ . 7 3.1 S ng 7 3.2 Ngôn ng ++. 8 8 CHNG II: NH 9 1. Ch 9 1.1 Qu ++ 9 1.2 Ch . 13 2. , 15 2.1 (variable declaration) 15 2.2 16 2.3 16 2.4 17 2.5 18 2.6 18 3. ++ 19 4. 20 4.1 -else 20 4.2 20 4.3 while 21 4.4 21 4.5 22 4.6 22 4.7 23 23 iv 5. ++ 23 6. trong C++ 25 6.1 (assignment operator) 25 6.2 25 6.3 25 6.4 logic 26 6.5 bitwise 26 6.6 26 6.7 26 6.8 3 ngôi 26 6.9 27 6.10 27 6.11 27 6.12 sizeof. 28 7. 28 31 CHNG III: , . 34 1. ++ 34 1.1 34 1.2 34 1.3 34 1.4 (overload) 35 1.5 36 2. , 37 3. 38 4. Bài t 38 CHNG IV: ++ 40 1. ++ 40 2. 41 3. 41 4. (Redirection) 41 5. i cin 42 6. C 42 7. i cout 45 8. 46 9. 46 10. 48 v 11. 48 12. stringstream 49 52 CHNG V: P. 54 1. Tru tng d 54 2. ng? 54 3. ng 55 4. ng 58 5. p v 59 6. ng th p 61 7. 62 8. 66 9. Kh 67 10. 72 11. copy 76 12. 78 13. p 79 14. S ng trong vai 80 15. : . 82 16. 84 91 CHNG VI: A (INHERITANCE) 94 1. S 94 2. S 94 3. a 94 4. 96 5. 98 6. a 101 6.1 a public 101 6.2. a private 101 102 7. 102 8. a 103 9. a 103 10. 105 11. a 107 12. p c s p c s 108 vi 13. ng 109 14. a 116 117 CH 118 1. 118 118 - Polymorphism 118 2. C 119 3. 120 4. 122 4.1 122 124 5. 124 6. p tru tng abstract class 128 7. c s 129 7.1 1 129 7.2 2 131 8. 135 9. 136 p 139 CHNG VIII: (TEMPLATE) 140 1. u 140 1.1 141 1.2 146 1.3 p tr 147 1.4 149 1.5 151 1.6 p cha () 154 2. 154 2.1 154 2.2 th 157 157 O 158 159 1 NG I: ++ 1. . . : + + + + . 1.1 ( ) . ( ). : + . . + , . + . . , . 1.2 . 2 . . Sau khi . . , . . , . . , . , : . , , . , , module. . . 3 1.3 . . . . . . : + . . . . . + . . , . + . . . [...]... Như vâ ̣y là có rấ t nhiề u ngôn ngữ lâ ̣p trình hướng đố i tươ ̣ng đã ra đời và chiế m ưu thế trong số chúng là C ++ và Java Mỗi ngôn ngữ đề u có đă ̣c điể m riêng của nó và thich ́ hơ ̣p với các linh vực khác nhau nhưng có lẽ C ++ là ngôn ngữ cài đă ̣t nhiề u đă ̣c điể m của ̃ OOP nhấ t 3.2 Ngôn ngƣ̃ lâ ̣p trinh C++ ̀ C++ là một ngôn ngữ lập trình hướng đối tượng... tra kiể u tinh Mô ̣t vài ngôn ngữ lâ ̣p trinh hướng đố i tươ ̣ng (Java chẳng hạn) thực hiê ̣n ̃ ̀ kiể m tra kiể u ta ̣i thời điể m chương trình cha ̣y (dynamic type checking) Nế u kế t hơ ̣p cả viê ̣c kiể m tra kiể u tinh và đô ̣ng thì sẽ hiê ̣u quả hơn nhưng kiể m tra kiể u đô ̣ng cũng làm cho ̃ chương trình thực hiê ̣n bi ̣ả nh hưởng đôi chút C++ sử du ̣ng kiể m tra... Grace Murray Hopper năm 1994) phát triển từ ngôn ngữ C C++ kế thừa cú pháp và mô ̣t số đă ̣c điể m ưu viê ̣t của C : ví dụ như xử lý con trỏ , thư viê ̣n các hàm phong phú đa dạng , tính khả chuyển cao , chương trinh cha ̣y nhanh … Tuy nhiên ̀ về bản chấ t thì C++ khác hoàn toàn so với C, điề u này là do C++ là một ngôn ngữ lập trình hướng đố i tươ ̣ng 4 Bài tập Bài tập 1: Download bộ... ̣t vài trình biên dịch giải quyết vấn đề tốc độ biên dịch bằng cách thực hiện quá trình biên dịch trong bộ nhớ (in-memory compilation) Các trình biên dịch theo kiểu này lưu trình biên dịch trong bô ̣ nhớ RAM Đối với các chương trình nhỏ , quá trình này có thể xem như là một trình thông dich ̣ Quá trình biên dịch Để lâ ̣p trình bằ ng C và C ++ chúng t a cầ n phải hiể u các bước và. .. lớp trong lâ ̣p trinh hướng đố i tươ ̣ng có thể xem như là mô ̣t sự trừu tươ ̣ng ở mức cao hơn của ̀ các cấu trúc (struct hay record) hay kiể u dữ liê ̣u do người dùng đinh nghia trong các ngôn ̣ ̃ ngữ lâ ̣p trình có cấ u trúc với sự tích hơ ̣p cả các toán tử và dữ liê ̣u trên các kiể u đó Các ưu điểm của lập trình hướng đối tượng: + Lâ ̣p trình hướng đố i tươ ̣ng... ̣ mở rô ̣ng Để phân biê ̣t mô ̣t chương trình C và C ++ đôi khi người ta còn dùng cách thêm mô ̣t ký tự “c” vào trước tên của các file header , chi tiế t này cũng đươ ̣c chấ p nhâ ̣n đố i với C và C++ Quá trình liên kết Trình liên kết tập hợp các module object (thườ ng là các file có phần mở rộng là o hoă ̣c obj), đươ ̣c sinh ra bởi trình biên dich , thành một chương trình... đúng hoặc sai của một biểu thức điều kiện để xác định đường đi của chương trình Trong C++ hai từ khóa true và false đã đươ ̣c đưa vào để biểu thị cho kết quả đúng hoặc sai của một biểu thức điều kiện , tuy nhiên các qui ước cũ vẫn có thể đươ ̣c dùng : mô ̣t gia tri bấ t kỳ khác 0 sẽ đươ ̣c coi là đúng và mô ̣t gia tri bằ ng 0 ̣ ̣ ́ ́ có nghĩa là sai 4.1 Câu lênh if-else ̣ Câu... các vòng lặp for , while và do – while có sự tương đồ ng và chúng đề u có thể chuyể n đổ i cho nhau Vòng lặp for được sử dụng nhiều hơn do mô ̣t số nguyên nhân sau: Trong vòng lă ̣p for có sự khởi ta ̣o ban đầ u , đồ ng thời nó giữ ch o các câu lê ̣nh gầ n nhau hơn và dễ thấ y từ đỉnh chu trình , đă ̣c biê ̣t là khi chúng ta có nhiể u chu trình lồ ng nhau Ví dụ:... cơ bản của C++ Các kiểu dữ liệu cơ bản của C ++ hầ u hế t đề u kế thừa của C ngoại trừ kiểu bool với hai hằ ng số true và false Đặc tả của ngôn ngữ C chuẩn cho các kiểu dữ liệu built – in không chỉ rõ cu ̣ thể các kiể u dữ liê ̣u này cầ n bao nhiêu bit Thay vào đó nó qui đinh các giá tri ̣max và min cá c bit ̣ mà mỗi kiểu dữ liệu có thể chứa Khi đó tuỳ thuô ̣c vào hê ̣... năng lưu trữ của chúng C++ cung cấ p 4 từ khóa bổ trơ ̣ là : long, short, signed và unsigned long và short đươ ̣c dùng để chỉ đi nh các giá tri ̣max và min mà mô ̣t kiể u dữ liê ̣u ̣ sẽ lưu giữ Mô ̣t biế n kiể u int sẽ có kich thước bằ ng kich thước nhỏ nhấ t của mô ̣t biế n kiể u ́ ́ short int Các kiểu dữ liệu số nguyên có thể là : short int và long int Với các kiểu . 1.2 Gi thi ngôn ng C++ : 9 6 3 2.1 Cài t ngôn ng C++ 2.2 C trúc mt chng trình C++ 2.3 Ki d. Common LISP Object System 1980 Stroustrup starts on C++ 1981 Byte Smalltalk issue 1983 Objective C 1986 C++ 1987 Actor, Eiffel 1991 C++ release 3.0 1995 Java 1983 to 1989 Language books. ++. C++ (AT & T Bell Lab) ( 1994) C. C++