#include <string>
#include <iostream>
using namespace std;
namespace
{
class Animal
{
public:
Animal()
{
cout << "基类调用虚函数…" << endl;
cout << GetInfo() << endl;
}
public:
virtual string GetInfo()
{
return "我是动物";
}
};
class Dog :public Animal
{
public:
Dog()
{
cout << "派生类调用虚函数…" << endl;
cout << GetInfo() << endl;
}
public:
string GetInfo() override
{
return "我是动物:""小狗狗";
}
};
}
#if 1
int main()
{
Dog dog;
return 0;
}
#endif
输出:
基类调用虚函数…
我是动物
派生类调用虚函数…
我是动物:小狗狗
从输出结果可以看出,构造函数(析构函数也一样)内部调用了虚函数的时候,执行的是与构造函数(析构函数)所在同一个类的虚函数版本。
标签:调用,析构,namespace,C++,Animal,构造函数,函数 From: https://www.cnblogs.com/huvjie/p/18377042