Với đoạn mã sau,C++ ảo Const Chức năng
class Base
{
public:
virtual void eval() const
{
std::cout<<"Base Const Eval\n";
}
};
class Derived:public Base
{
public:
void eval()
{
std::cout<<"Derived Non-Const Eval\n";
}
};
int main()
{
Derived d;
Base* pB=&d;
pB->eval(); //This will call the Base eval()
return 0;
}
Tại sao pB-> eval() sẽ gọi cơ sở :: eval()?
Cảm ơn bạn
Tò mò: trình biên dịch gì? Tùy chọn cảnh báo nào? – Arun
Nếu bạn bật cảnh báo trên hầu hết các trình biên dịch sẽ. –