C++构造函数调用虚函数的后果
生活随笔
收集整理的這篇文章主要介紹了
C++构造函数调用虚函数的后果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>class cx {
public:virtual void func() {std::cout << "func" << std::endl;}cx() {func(); //構造函數中調用虛函數,語法上OK,效果上不對,因為當對象由子類進入基類構造時是基類類型的//不管如何調用,總只能調用到基類的虛函數,無法調用到子類的虛函數,見下面測試
}};class cb : public cx {void func() {std::cout << "cb.func" << std::endl;}
};
int main()
{cx ox; //funccb ob; //func
cx* pox = new cb(); //funcpox->func(); //cb.func
}
?
總結
以上是生活随笔為你收集整理的C++构造函数调用虚函数的后果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++如何限制对象在堆上或栈上生成
- 下一篇: 【转】A星算法详解