JavaScript is required

class Diem
{
float x,y;
public:
Diem(){x=0;y=0}; //ham tao khong doi
Diem(float x,float y);//ham tao co doi
};
class HT:public Diem
{
private:
float r;
public:
HT(){r=1;};
HT(float x1,float y1, float r1){r=r1;};
};
Đoạn chương trình trên khi khai báo 1 hình tròn (HT H1;) thì hình tròn H1 này có:

A.

A. Tâm là (0,0) bán kinh là 1

B.

B. Tâm là(1,1) bán kình là 1

C.

C. Không xác định được tâm vì theo tính chất kế thừa không kế thừa hàm tạo, ở lớp dẫn xuất phải gọi hàm tạo của lớp cơ sở

D.
D. Tất cả các phương án đều đúng
Trả lời:

Đáp án đúng: C


Khi khai báo `HT H1;`, chương trình sẽ gọi hàm tạo không đối của lớp `HT`. Hàm tạo này được định nghĩa là `HT(){r=1;};`. Trong lớp `HT`, lớp này lại kế thừa từ lớp `Diem`, nhưng trong hàm tạo của `HT` không gọi đến hàm tạo nào của lớp `Diem` một cách tường minh. Do đó, hàm tạo mặc định không đối `Diem()` sẽ được gọi, gán `x=0` và `y=0`. Vậy, hình tròn `H1` sẽ có tâm tại (0, 0) và bán kính là 1.

Câu hỏi liên quan