Giáo trình Lập trình hướng đối tượng với C++
Số trang: 52
Loại file: pdf
Dung lượng: 762.13 KB
Lượt xem: 24
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
- Nhập xuất dữ liệu sử dụng toán tử cin và cout
- Viết chú thích trên một dòng, khai báo biến ở mọi nơi, cấp phát và thu hồi bộ nhớ đồng sử dụng toán new và delete
- giải các bài tậpcó sử dụng kỹ thuật chồng hàm,tham số ngầm định
- C++ là một sự mời rộng của C,do đó có thể sử dụng một chương trình biên dịch C++ để dịch và thực hiện các chương trình viết bằng C
Nội dung trích xuất từ tài liệu:
Giáo trình Lập trình hướng đối tượng với C++ Giáo trình Lập trình hướng đối tượng với C++ L P TRÌNH HƯ NG I TƯ NG V I C++ Mét sè tiÖn Ých vµ më réng cña C++ so víi C M C TIÊU C A BÀI NÀY GIÚP NGƯ I H C Nh p/xu t d li u s d ng toán t cin và cout Vi t chú thích trên m t dòng, khai báo bi n m i nơi, c p phát và thu h i b nh ng s d ng toán new và delete, Gi i các bài t p có s d ng k thu t ch ng hàm, thâm s ng m nh. A/ TÓM T T LÝ THUY T - C++ là m t s m i r ng c a C, do ó có th s d ng m t chương trình biên d ch C++ d ch và th c hi n các chương trình vi t b ng C - C yêu c u các chú thích n m gi a /* và */. C++ cho phép t o m t chú thích b t u b ng “//” cho n h t dòng - C++ cho phép khai báo tuỳ ý. Th m chí có th khai báo bi n trong ph n kh i t o c a câu lênh l p for - C++ cho phép truy n tham s cho hàm b ng tham chi u. i u này tương t như truy n tham bi n cho chương trình con trong ngôn ng l p trình PASCAL. Trong l i g i hàm ta dùng tên bi n và bi n ó s ư c truy n cho hàm qua tham chi u. i u ó cho phép thao tác tr c ti p trên bi n ư c truy n ch không ph i gián ti p qua bi n tr . - Toán t new và delete trong C++ ư c dùng qu n lý b nh ng thay vì các hàm c p phát ng c a C - C++ cho phép ngư i vi t chương trình mô t các giá tr ng m nh cho các tham s c a hàm, nh ó hàm có th ư c g i v i m t danh sách các tham s không . - Toán t “::” cho phép truy nh p bi n toàn c c khi ng th i s d ng bi n c c b và toàn c c cùng tên. - Có th nh nghĩa các hàm cùng tên v i các tham s khác nhau. Hai hàm cùng tên s ư c phân bi t nh giá tr tr v và danh sách ki u các tham s . B. M T S LƯU Ý (Các l i thư ng g p, m t s thói quen l p trình t t...) Các l i thư ng g p Quên óng */ cho các chú thích Khai báo bi n sau khi bi n ư c s d ng S d ng l nh return tr v giá tr nhưng khi nh nghĩa hàm l i mô t hàm ki u void ho c ngư c l i, quên câu l nh này trong trư ng h p hàm yêu c u giá tr tr v . Không có hàm nguyên m u cho các hàm B qua kh i t o cho các bi n tham chi u Thay i giá tr c a các h ng T o các hàm cùng tên, cùng tham s . M t s thói quen l p trình t t S d ng “//” tránh l i không óng */ khi chú thích n m g n trong m t dòng. S d ng các kh năng vào ra m i c a C++ chương trình d c hơn. t các khai báo biên lên u kh i l nh. Ch dùng t khoá inline v i các hàm “nh ”,”không ph c t p”. S d ng con tr truy n tham s cho hàm khi c n thay i giá tr tham s , còn tham chi u dùng truy n các tham s có kích thư c l n mà không có nhu c u thay i n i dung. Tránh s d ng bi n cùng tên cho nhi u m c ch khác nhau trong chương trình. Trang 1 L P TRÌNH HƯ NG I TƯ NG V I C++ C/ BÀI T P M U Ví d 1: C++ ch p nh n hai ki u chú thích. Các l p trình viên b ng C ã quen v i cách chú thích b ng /*…*/. Trình biên d ch s b qua m i th n m gi a /*…*/. Xét chương trình sau : CT1_1.CPP /* 1. Chương trình in các s t 0 n 9. */ #include void main() { int I; for(I = 0; I < 10 ; ++ I)// 0 - 9 coutL P TRÌNH HƯ NG I TƯ NG V I C++ cin>>X; cout>Y; coutL P TRÌNH HƯ NG I TƯ NG V I C++ bi n nguyên i ư c khai báo trong dòng l nh for có v trí tương ương v i vi c khai báo i bên ngoài for. Vì v y, trong vòng for th hai ta s d ng bi n i nhưng chương trình không báo l i. Ví d 5 : Tìm l i sai cho các khai báo prototype hàm dư i ây (các hài này ư c khai báo trong cùng m t chương trình) int func1(int); // (1) float func1(int); // (2) int func1(float); //(3) void func1(int=0,int); //(4) void func2(int,int=0); //(5) void func2(int); //(6) void func2(float); //(7) L i g i: Trong nh nghĩa ch ng hàm, trình biên d ch phân bi t các hàm b i ki u d li u tr ra c a hàm mà ch phân bi t b i danh sách tham s c a hàm. Do v y hàm 1 và hàm 2 b nh nghĩa ch ng lên nhau và trình biên d ch báo l i. Gi a hàm 2 và hàm 3 không có l i b i chúng khác nhau b i ki u d li u c a tham s . Trong hàm 4 ta ã s d ng sai cách truy n giá tr m c nh cho tham s . Không báo gi truy n giá tr m c nh cho m t tham s trư c m t tham s không ư c truy n giá tr ng m nh. Trong cách nh nghĩa hai hàm 5 và 6 có s nh p nh ng. Khi ta g i hàm func2 v i tham s là m t s nguyên thì trình biên d ch không bi t là s g i hàm 5 hay hàm 6 b i vì c hai hàm này u ư c. Trong trư ng h p này trình biên d ch cũng thông báo l i. Ví d 6: Tìm l i sai(l i cú pháp và b nh ) cho chương trình sau: int & refl() { int a=5; return a; } int & rè2(int a) { a++; return a; } int & ref3(int & a) { a++; return a; } int a=5; int &r1; int &r2=22; int &r3=a; int &r4=ref3(5); int &r5=ref3(a); Tr l i: Trong các hàm có k t qu tr v là m t tham chi u, chúng ta luôn ph i chú ý r ng bi n ư c tr l i có giá tr là tham chi u không b xoá kho i b nh chương trình khi k t thúc th c hi n hàm. Do v y hai hàm ref1 và ref2 là sai b i vì nó tr v tham chi u t i biên mà a l i là bi n c c b trong ref1 và là tham s trong ref2 ch ư c t o ra t m th i Trang 4 L P TRÌNH HƯ NG I TƯ NG V I C++ trên stack khi g i hàm và xoá kh i stack khi k t thúc hàm. Hàm ref3 không có l i vì a là m t tham chi u t i m t bi n không n m trong hàm. ...
Nội dung trích xuất từ tài liệu:
Giáo trình Lập trình hướng đối tượng với C++ Giáo trình Lập trình hướng đối tượng với C++ L P TRÌNH HƯ NG I TƯ NG V I C++ Mét sè tiÖn Ých vµ më réng cña C++ so víi C M C TIÊU C A BÀI NÀY GIÚP NGƯ I H C Nh p/xu t d li u s d ng toán t cin và cout Vi t chú thích trên m t dòng, khai báo bi n m i nơi, c p phát và thu h i b nh ng s d ng toán new và delete, Gi i các bài t p có s d ng k thu t ch ng hàm, thâm s ng m nh. A/ TÓM T T LÝ THUY T - C++ là m t s m i r ng c a C, do ó có th s d ng m t chương trình biên d ch C++ d ch và th c hi n các chương trình vi t b ng C - C yêu c u các chú thích n m gi a /* và */. C++ cho phép t o m t chú thích b t u b ng “//” cho n h t dòng - C++ cho phép khai báo tuỳ ý. Th m chí có th khai báo bi n trong ph n kh i t o c a câu lênh l p for - C++ cho phép truy n tham s cho hàm b ng tham chi u. i u này tương t như truy n tham bi n cho chương trình con trong ngôn ng l p trình PASCAL. Trong l i g i hàm ta dùng tên bi n và bi n ó s ư c truy n cho hàm qua tham chi u. i u ó cho phép thao tác tr c ti p trên bi n ư c truy n ch không ph i gián ti p qua bi n tr . - Toán t new và delete trong C++ ư c dùng qu n lý b nh ng thay vì các hàm c p phát ng c a C - C++ cho phép ngư i vi t chương trình mô t các giá tr ng m nh cho các tham s c a hàm, nh ó hàm có th ư c g i v i m t danh sách các tham s không . - Toán t “::” cho phép truy nh p bi n toàn c c khi ng th i s d ng bi n c c b và toàn c c cùng tên. - Có th nh nghĩa các hàm cùng tên v i các tham s khác nhau. Hai hàm cùng tên s ư c phân bi t nh giá tr tr v và danh sách ki u các tham s . B. M T S LƯU Ý (Các l i thư ng g p, m t s thói quen l p trình t t...) Các l i thư ng g p Quên óng */ cho các chú thích Khai báo bi n sau khi bi n ư c s d ng S d ng l nh return tr v giá tr nhưng khi nh nghĩa hàm l i mô t hàm ki u void ho c ngư c l i, quên câu l nh này trong trư ng h p hàm yêu c u giá tr tr v . Không có hàm nguyên m u cho các hàm B qua kh i t o cho các bi n tham chi u Thay i giá tr c a các h ng T o các hàm cùng tên, cùng tham s . M t s thói quen l p trình t t S d ng “//” tránh l i không óng */ khi chú thích n m g n trong m t dòng. S d ng các kh năng vào ra m i c a C++ chương trình d c hơn. t các khai báo biên lên u kh i l nh. Ch dùng t khoá inline v i các hàm “nh ”,”không ph c t p”. S d ng con tr truy n tham s cho hàm khi c n thay i giá tr tham s , còn tham chi u dùng truy n các tham s có kích thư c l n mà không có nhu c u thay i n i dung. Tránh s d ng bi n cùng tên cho nhi u m c ch khác nhau trong chương trình. Trang 1 L P TRÌNH HƯ NG I TƯ NG V I C++ C/ BÀI T P M U Ví d 1: C++ ch p nh n hai ki u chú thích. Các l p trình viên b ng C ã quen v i cách chú thích b ng /*…*/. Trình biên d ch s b qua m i th n m gi a /*…*/. Xét chương trình sau : CT1_1.CPP /* 1. Chương trình in các s t 0 n 9. */ #include void main() { int I; for(I = 0; I < 10 ; ++ I)// 0 - 9 coutL P TRÌNH HƯ NG I TƯ NG V I C++ cin>>X; cout>Y; coutL P TRÌNH HƯ NG I TƯ NG V I C++ bi n nguyên i ư c khai báo trong dòng l nh for có v trí tương ương v i vi c khai báo i bên ngoài for. Vì v y, trong vòng for th hai ta s d ng bi n i nhưng chương trình không báo l i. Ví d 5 : Tìm l i sai cho các khai báo prototype hàm dư i ây (các hài này ư c khai báo trong cùng m t chương trình) int func1(int); // (1) float func1(int); // (2) int func1(float); //(3) void func1(int=0,int); //(4) void func2(int,int=0); //(5) void func2(int); //(6) void func2(float); //(7) L i g i: Trong nh nghĩa ch ng hàm, trình biên d ch phân bi t các hàm b i ki u d li u tr ra c a hàm mà ch phân bi t b i danh sách tham s c a hàm. Do v y hàm 1 và hàm 2 b nh nghĩa ch ng lên nhau và trình biên d ch báo l i. Gi a hàm 2 và hàm 3 không có l i b i chúng khác nhau b i ki u d li u c a tham s . Trong hàm 4 ta ã s d ng sai cách truy n giá tr m c nh cho tham s . Không báo gi truy n giá tr m c nh cho m t tham s trư c m t tham s không ư c truy n giá tr ng m nh. Trong cách nh nghĩa hai hàm 5 và 6 có s nh p nh ng. Khi ta g i hàm func2 v i tham s là m t s nguyên thì trình biên d ch không bi t là s g i hàm 5 hay hàm 6 b i vì c hai hàm này u ư c. Trong trư ng h p này trình biên d ch cũng thông báo l i. Ví d 6: Tìm l i sai(l i cú pháp và b nh ) cho chương trình sau: int & refl() { int a=5; return a; } int & rè2(int a) { a++; return a; } int & ref3(int & a) { a++; return a; } int a=5; int &r1; int &r2=22; int &r3=a; int &r4=ref3(5); int &r5=ref3(a); Tr l i: Trong các hàm có k t qu tr v là m t tham chi u, chúng ta luôn ph i chú ý r ng bi n ư c tr l i có giá tr là tham chi u không b xoá kho i b nh chương trình khi k t thúc th c hi n hàm. Do v y hai hàm ref1 và ref2 là sai b i vì nó tr v tham chi u t i biên mà a l i là bi n c c b trong ref1 và là tham s trong ref2 ch ư c t o ra t m th i Trang 4 L P TRÌNH HƯ NG I TƯ NG V I C++ trên stack khi g i hàm và xoá kh i stack khi k t thúc hàm. Hàm ref3 không có l i vì a là m t tham chi u t i m t bi n không n m trong hàm. ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng tài liệu Lập trình hướng đối tượng hướng dẫn Lập trình hướng đối tượng giáo trình Lập trình hướng đối tượng cẩm nang Lập trình hướng đối tượngGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 275 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 80 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 69 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 51 0 0