我看过类似的查询,但我似乎让自己迷失了方向。我有一个简单的例子,所以请考虑以下几点:
#include <iostream>
using namespace std;
class Animal
{
public:
Animal() {cout << "Animal" << endl;}
};
class Cat : public Animal
{
public:
Cat() {cout << "Cat" << endl;};
};
int main()
{
Cat c;
return 0;
}
程序运行时会显示
Animal
Cat
我现在的问题是:实际上首先调用了哪个构造函数。在执行其内容之前是否调用了 Cat(),然后 Cat() 调用了 Animal(),或者编译器/程序是否查看 Cat(),看到它是一个 Animal(),然后先调用 Animal(),然后调用 Cat()?