[程式] 請問一下C++繼承的問題
class TestA
{
public:
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
{
public:
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");
}
以上程式碼在編譯時期會發生錯誤
錯在b.Foo("Call B")的部分
但是將TestB的Foo function拿掉的話
就可以正常執行
請問版上的高手能夠幫忙解答一下嗎?
小弟實在百思不得其解啊...
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.179.170
推
02/18 18:21, , 1F
02/18 18:21, 1F
推
02/18 18:25, , 2F
02/18 18:25, 2F
→
02/18 19:06, , 3F
02/18 19:06, 3F
→
02/18 19:11, , 4F
02/18 19:11, 4F
推
02/18 20:14, , 5F
02/18 20:14, 5F
→
02/18 22:18, , 6F
02/18 22:18, 6F
→
02/18 22:27, , 7F
02/18 22:27, 7F
→
02/19 00:01, , 8F
02/19 00:01, 8F
→
02/19 00:01, , 9F
02/19 00:01, 9F
推
02/19 08:38, , 10F
02/19 08:38, 10F
→
02/19 21:49, , 11F
02/19 21:49, 11F
→
02/19 22:24, , 12F
02/19 22:24, 12F
→
02/22 05:11, , 13F
02/22 05:11, 13F
討論串 (同標題文章)