在下面的代码中,当X被调用的ctor 首先被调用A或被B调用时?它们放在班级正文中的顺序是否控制了这个?如果有人可以提供C++标准的一小段文本来讨论这个问题,那将是完美的.
class A {};
class B {};
class X
{
A a;
B b;
};
Run Code Online (Sandbox Code Playgroud) 考虑以下2个程序.
#include <iostream>
using std::cout;
class Base {
public:
virtual void f()=0;
void g() {
f();
}
virtual ~Base() { }
};
class Derived : public Base
{
public:
void f() {
cout<<"Derived::f() is called\n";
}
~Derived() {}
};
class Derived1 : public Base
{
public:
void f() {
cout<<"Derived1::f() is called\n";
}
~Derived1() { }
};
int main() {
Derived1 d;
Base& b=d;
b.g();
b.f();
}
Run Code Online (Sandbox Code Playgroud)
编译并运行良好并给出预期的结果..
#include <iostream>
using std::cout;
class Base {
public:
virtual void f()=0;
Base() …Run Code Online (Sandbox Code Playgroud)