7
Tôi có một tập hợp các lớp như thế này:C++ tránh bằng tay gọi hàm lớp cơ sở
class A {
public:
int DoIt() {
//common code
}
};
class B : public A {
int DoIt() {
if (A::DoIt() == 1) {
return 1;
}
else {
// do b specific code
}
}
};
class C : public A {
int DoIt() {
if(A::DoIt()==1) {
return 1;
}
else {
// do c specific code
}
}
};
Có cách nào tôi có thể tránh bằng tay đặt mã này:
if (A::Doit() == 1) { return 1; } else {
trong mỗi lớp đó là bắt nguồn từ A?
Cú pháp chính xác là 'lớp B: công khai A'. C++ không phải là Java. – kennytm
@Justin ᚅᚔᚈᚄᚒᚔ: OP đang hỏi cách tránh gõ 'if (A :: Doit() == 1) trả về 1; } else {'trong mọi phân lớp, không phải cách gọi 'A :: Doit()' mà không biết A. Câu hỏi liên kết thậm chí không liên quan đến thừa kế. – kennytm