gpt4 book ai didi

c++ - 使用 this->classname::classname(...) 调用构造函数

转载 作者:行者123 更新时间:2023-11-30 01:56:34 24 4
gpt4 key购买 nike

我想知道在哪里记录了这种形式的构造函数调用。这种语法显然适用于 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/

这篇文章也提到了这种语法:

Can I call a constructor from another constructor (do constructor chaining) in C++?

另一篇讨论此事的帖子:

Explicit constructor call in C++

最佳答案

假定的显式构造函数调用不是有效的 C++ 语法。 MSVC 接受此类代码的事实 is a bug .

关于c++ - 使用 this->classname::classname(...) 调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com