考慮下面的代碼片段,C++虛擬const函數
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;
}
爲什麼PB->的eval()將調用基:: eval()函數?
謝謝
好奇:什麼編譯器?什麼警告選項? – Arun 2010-09-30 03:23:50
如果您在大多數編譯器上打開警告。 – 2010-09-30 03:35:28