#include <iostream> using namespace std; class Base { public: Base() { Fuction(); } virtual void Fuction() { cout << "Base::Fuction" << endl; } }; class A : public Base { public: A() { Fuction(); } virtual void Fuction() { cout << "A::Fuction" << endl; } }; void main() { A a; system("pause"); }
//为什么答案不是A::Function A::Function 而是 Base::Function A::Function呢,原因是产生base这个基类时A还未构造,这怎么"虚"得过去呢?所以第一次就输出Base::Fu//nction第二次输出A::Function
在子类的构造函数中调用虚函数
最新推荐文章于 2024-07-13 14:34:09 发布