Một số ví dụ về hàm tạo, hàm huỷ trong thừa kế nhiều mức

7 845 0
Một số ví dụ về hàm tạo, hàm huỷ trong thừa kế nhiều mức

Đang tải... (xem toàn văn)

Thông tin tài liệu

Một số dụ về hàm tạo, hàm huỷ trong thừa kế nhiều mức dụ 1. dụ này minh hoạ cách xây dựng hàm tạo trong các lớp dẫn xuất. Ngoài ra còn minh hoạ cách dùng các phương thức của các lớp cơ sở trong lớp dẫn xuất và cách xử lý các đối tượng thành phần. Xét 4 lớp A, B, C và D. Lớp C dẫn xuất từ B, lớp D dẫn xuất từ C và có thành phần là đối tượng kiểu A. //CT5-06 // Thua ke nhieu muc // Ham tao #include <conio.h> #include <iostream.h> #include <string.h> class A { private: int a; char *str ; public: A() { a=0; str=NULL; } A(int a1,char *str1) { a=a1; str=strdup(str1); } void xuat() { cout << "\n" << "So nguyen lop A= " << a << " Chuoi lop A: " << str ; } } ; class B { private: int b; char *str ; public: B() { b=0; str=NULL; } B(int b1,char *str1) { b=b1; str=strdup(str1); } void xuat() { cout << "\n" << "So nguyen lop B = " << b << " Chuoi lop B: " << str ; } } ; class C : public B { private: int c; char *str ; public: C():B() { c=0; str=NULL; } C(int b1,char *strb,int c1, char *strc) : B(b1,strb) { c=c1; str=strdup(strc); } void xuat() { B::xuat(); cout << "\n" << "So nguyen lop C = " << c << " Chuoi lop C: " << str ; } } ; class D : public C { private: int d; char *str ; A u; public: 263 264 D():C(),u() { d=0; str=NULL; } D(int a1, char *stra,int b1,char *strb,int c1, char *strc, int d1, char *strd) : u(a1,stra), C(b1,strb,c1,strc) { d=d1; str=strdup(strd); } void xuat() { u.xuat(); C::xuat(); cout << "\n" << "So nguyen lop D = " << d << " Chuoi lop D: " << str ; } } ; void main() { D h(1,"AA",2,"BB",3,"CC",4,"DD"); clrscr(); cout << "\n\n Cac thuoc tinh cua h thua ke B: " ; h.B::xuat(); cout << "\n\n Cac thuoc tinh cua h thua ke B va C: " ; h.C::xuat(); cout << "\n\n Cac thuoc tinh cua h thua ke B,C va khai bao trong D:" ; h.xuat(); getch(); } dụ 2. dụ này minh hoạ cách xây dựng hàm huỷ trong lớp dẫn xuất. Chương trình trong dụ này lấy từ chương trình của dụ 1, sau đó đưa thêm vào các hàm huỷ. //CT5-07 // Thua ke nhieu muc // Ham tao // Ham huy #include <conio.h> #include <iostream.h> #include <string.h> class A 265 266 { private: int a; char *str ; public: A() { a=0; str=NULL; } A(int a1,char *str1) { a=a1; str=strdup(str1); } ~A() { cout <<"\n Huy A"; getch(); a=0; if (str!=NULL) delete str; } void xuat() { cout << "\n" << "So nguyen lop A= " << a << " Chuoi lop A: " << str ; } } ; class B { private: int b; char *str ; public: B() { b=0; str=NULL; } B(int b1,char *str1) { b=b1; str=strdup(str1); } ~B() { cout <<"\n Huy B"; getch(); b=0; if (str!=NULL) delete str; } void xuat() { cout << "\n" << "So nguyen lop B = " << b << " Chuoi lop B: " << str ; } } ; class C : public B { private: int c; char *str ; public: C():B() { c=0; str=NULL; } C(int b1,char *strb,int c1, char *strc) : B(b1,strb) { c=c1; str=strdup(strc); } ~C() { cout <<"\n Huy C"; getch(); c=0; if (str!=NULL) delete str; } void xuat() { B::xuat(); cout << "\n" << "So nguyen lop C = " << c << " Chuoi lop C: " << str ; } } ; class D : public C { private: int d; 267 268 char *str ; A u; public: D():C(),u() { d=0; str=NULL; } D(int a1, char *stra,int b1,char *strb,int c1, char *strc, int d1, char *strd) : u(a1,stra), C(b1,strb,c1,strc) { d=d1; str=strdup(strd); } ~D() { cout <<"\n Huy D"; getch(); d=0; if (str!=NULL) delete str; } void xuat() { u.xuat(); C::xuat(); cout << "\n" << "So nguyen lop D = " << d << " Chuoi lop D: " << str ; } } ; void main() { D *h; h = new D(1,"AA",2,"BB",3,"CC",4,"DD"); clrscr(); cout << "\n\n Cac thuoc tinh cua h thua ke B: " ; h->B::xuat(); cout << "\n\n Cac thuoc tinh cua h thua ke B va C: " ; h->C::xuat(); cout << "\n\n Cac thuoc tinh cua h thua ke B,C va khai bao trong D:" ; h->xuat(); delete h; // Lan luot goi toi cac ham huy cua cac lop D, A, C, B getch(); 269 270 } . Một số ví dụ về hàm tạo, hàm huỷ trong thừa kế nhiều mức Ví dụ 1. Ví dụ này minh hoạ cách xây dựng hàm tạo trong các lớp dẫn xuất va khai bao trong D:" ; h.xuat(); getch(); } Ví dụ 2. Ví dụ này minh hoạ cách xây dựng hàm huỷ trong lớp dẫn xuất. Chương trình trong ví dụ này lấy

Ngày đăng: 24/10/2013, 15:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan