Class thừa kế (Nested Class ):

Một phần của tài liệu Lập Trình C++ (Trang 42)

class con được gọi là class cơ sở hay class dẫn xuất. Cú pháp khai báo class con cũng tương t ự như class thông thường.

Cú pháp

ref class Class_name1 // Khai báo class dẫn xuất {

public:

ref class Class_name2 // Khai báo class con. {

Statement; // Đoạn mã của class con. };

Statement; // Đoạn mã của class cha. } ;

VD :

ref class Hinh_tron

{public : public : // Variable : UInt16 R; // Method : UInt16 Chu_vi() { return 2*(Math::PI)*R; } UInt16 Dien_tich() { return (Math::PI)*R*R; }

ref class Hinh_vuong

{public : public : // Variable : UInt16 a; // Method : UInt16 Chu_vi()

return 4*a; } UInt16 Dien_tich() { return a*a; } }; }; Sửdụng Nested Class:

Trong chương trình chính (hàm main()), đ ể tạo ra một đối tượng từ ref class con đã khai báo, ta phải truy xuất thông qua class cha.

Cách 1 : Dùng Handle^ :

Cú pháp :

Class_name1::Class_name2^ name = gcnew Class_name1::Class_name2();

Lưu ý : Nếu trong class đã có khai báo constructor, khi tạo đối tượng ta phải theo đúng cấu trúc của constructor.

VD : Hinh_tron::Hinh_vuong^ A = gcnew Hinh_tron::Hinh_vuong(10);

Đểtruy xuất đến các biến vàphương thức của ref class, ta dùng toán tử “->”.

VD : A->a = 5; // Gán giá trị5 cho thuộc tính a của đối tượng.

UInt16 x = A->Chu_vi(); // x = 20

UInt16 y = A->Dien_tich(); // y = 25

Cách 2 : Dùng stack :

Cú pháp : Class_name1::Class_name2 name ; // name là tên đối tượng.

VD : Hinh_tron::Hinh_vuong A(5) ; // Tạo đối tượng hình tròn A.

Đểtruy xuất đến các biến và phương thức của ref class, ta dùng toán tử “.”.

VD : A.R = 5; // Gán giá trị5 cho thuộc tính R của đối tượng.

Quay trởlại ví dụvềclass Hinh_vuong là class con của Class Hinh_tron đã khai báo, trong hàm main()

VD :

void main()

{

Hinh_tron^ A = gcnew Hinh_tron(10);

Console::WriteLine("Chu vi hinh tron A: " + A->Chu_vi());

Hinh_tron::Hinh_vuong^ B = gcnew Hinh_tron::Hinh_vuong(25); Hinh_tron::Hinh_vuong C(25);

Console::WriteLine("Chu vi hinh vuong B: " + B->Chu_vi()); Console::WriteLine("Chu vi hinh vuong C: " + C.Chu_vi()); Console::ReadKey();

}

Kết quảin ra màn hình : Chu vi hinh tron A : 62 Chu vi hinh vuong B : 100 Chu vi hinh vuong C : 100

Một phần của tài liệu Lập Trình C++ (Trang 42)

Tải bản đầy đủ (PDF)

(72 trang)