01/10/2018, 12:29
Hỏi về kế thừa trong C++
Cho em hỏi tại sao không xuất ra chu vi của TuGiac mà xuất ra của TamGiac vậy ạ.
#include <iostream>
using namespace std;
class TamGiac {
private:
int a, b, c;
public:
TamGiac();
TamGiac(int x, int y, int z);
TamGiac(const TamGiac&);
int TinhCV();
};
TamGiac::TamGiac() {}
TamGiac::TamGiac(int x, int y, int z) :a(x), b(y), c(z) {}
TamGiac::TamGiac(const TamGiac &tg) {
this->a = tg.a;
this->b = tg.b;
this->c = tg.c;
}
int TamGiac::TinhCV() {
return a + b + c;
}
class TuGiac :public TamGiac {
private:
int d;
public:
TuGiac();
TuGiac(int x, int y, int z, int k);
TuGiac(const TuGiac&);
int TinhCV();
};
TuGiac::TuGiac() :TamGiac() {}
TuGiac::TuGiac(int x, int y, int z, int k) : TamGiac(x, y, z) {
d = k;
}
TuGiac::TuGiac(const TuGiac &tg) : TamGiac((TamGiac&)tg) {
this->d = tg.d;
}
int TuGiac::TinhCV() {
int k = TamGiac::TinhCV();
return k + d;
}
}
int main() {
TuGiac a(2, 3, 4, 5);
a.Xuat();
system("pause");
return 0;
}
Bài liên quan
Về hình học, lớp Tứ giác không phải là kế thừa từ lớp Tam giác.
Code của bạn bị lỗi biên dịch. Thế là thế nào?
Muốn biểu diễn quan hệ này (n-giác) trong C++ thì template e là tốt hơn đấy.
sorry em thiếu.
Em muốn hỏi là tại sao trong hàm
main
,a.Xuat()
lấyTinhCV()
củaTamGiac
mà không phải lấy
TinhCV()
củaTuGiac
. Trong khia
là củaTuGiac
. Cảm ơn anh nhiều.Vì đây là bài tập về kế thừa và đa hình. Mong anh giúp
Thêm
virtual int TinhCV();
Vào cả hai hàm
Nếu C++ 11 thì cuối hàm kế thừa cho thêm
override
A post was merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2