什么是下面的代码的结果,并请说明原因:)简单的构造函数两难困境 - 继承
class Mother
{
public:
Mother () {
cout << "r" << endl;
}
~Mother ()
{
cout << "n" << endl;
}
};
class Daughter: public Mother
{
public:
Daughter ()
{
cout << "a" << endl;
}
~Daughter ()
{
cout << "b" << endl;
}
};
void foo(Mother m){ cout<< "foo" <<endl;}
int main()
{
Daughter lea;
Mother* Rachel;
foo(lea);
}
我不知道为什么,但有人告诉我这将是: R,A,FOO ,n,b,n(从左到右)
为什么调用“Daughter lea”会生成r和a?由于继承? 为什么“foo”突然出现?它不应该是最后? 谢谢!
为什么不运行它并找出?使用调试器,您甚至可以浏览代码并查看运行时发生的情况。 – NathanOliver
@ArielNitzan补充说,在主要问题,否则你会得到更多的优惠 –