前幾天發現一個很有趣的問題
至今仍然找不到解答
歡迎高手們來挑戰
class TestA
{
publlic:
virtual void Foo(int i){printf("TestA::Foo %d\n", i);}
virtual void Foo(char *s){printf("TestA::Foo %s\n", s);}
};
class TestB : public TestA
{
publlic:
virtual void Foo(int i){printf("TestB::Foo %d\n", i);}
};
int main()
{
TestA a;
TestB b;
a.Foo(1);
a.Foo("Call A");
b.Foo(2);
b.Foo("Call B");
}
執行以上的程式碼之後,會有何種結果?
A: 可以正常執行,但是compile過程中會有warning出現
B: complie過程沒有問題,但是執行時會當掉
C: compile根本不會過,你耍我啊?
想知道結果的人請自行測試
我只想知道原因啊!!!
全站熱搜