Tại sao trình biên dịch C++ lại đưa ra lỗi này? Tại sao tôi có thể truy cập lol() từ B, nhưng không thể truy cập rofl() [không có tham số]. Đâu là bắt?Thừa kế thừa kế và thừa kế phương thức
class A
{
public:
void lol(void) {}
void rofl(void) { return rofl(0);}
virtual void rofl(int x) {}
};
class B : public A
{
public:
virtual void rofl(int x) {}
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
a.lol();
a.rofl(1);
a.rofl();
B b;
b.lol();
b.rofl(1);
b.rofl(); //ERROR -> B::rofl function does not take 0 arguments
return 0;
}
+1 Nhanh hơn bạn đời của tôi :) – AraK
yep, nhưng A :: rofl() không phải là ảo. Thats ý tưởng - rofl() allways gọi rofl ảo (0). –
@ 0xDEAD BEEF: trong trường hợp đó, bạn _intend_ sử dụng nó, vì vậy hãy làm rõ điều đó với trình biên dịch bằng cách nói 'using A :: rofl;'. – xtofl