1. Trang chủ
  2. » Công Nghệ Thông Tin

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

7 845 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 18,91 KB

Nội dung

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

w