我想知道这种形式的构造函数调用记录在哪里。这种语法显然从 Visual Studio 6.0 版开始工作(我知道它不能使用 G++ 编译)。
请注意,我不是在寻找替代品,我不需要知道它是好是坏。
class Foo
{
public:
int m_value;
Foo() : m_value(0) {}
};
Foo o;
o.m_value = 5;
o.Foo::Foo(); // Explicit constructor call!
EXPECT_EQ(0, o.m_value); // True!
我首先在阅读这篇文章时发现了这种语法:
http://www.dreamincode.net/forums/topic/160032-finite-state-machines/
这篇文章也提到了这种语法:
我可以从 C++ 中的另一个构造函数(做构造函数链接)调用构造函数吗?
另一个帖子讨论这个问题: