我在玩construting / destructing对象。这是我尝试过的http://coliru.stacked-crooked.com/a/ff17cc5649897430:
#include <iostream>
struct B{
B(){ std::cout << "B()" << std::endl; }
B(int){ std::cout << "B(int)" << std::endl; }
};
struct A : virtual B
{
int B;
A(int a) : B(a) { std::cout << "A(int)" << std::endl; }
} a(10);
int main()
{
}
程序输出
B()
A(int)
为什么呢?我明确指定了要在 ctor-initializer 中调用的类B
的构造函数。
答案 0 :(得分:5)
B(a)
正在构建B
成员变量。更好地命名您的变量,您将看到您想要看到的内容。