gpt4 book ai didi

VC2010 中的 C++0x 对等构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:17:27 24 4
gpt4 key购买 nike

根据C++0x spec , 以下是合法的

class A {
A(int i) : x(i) {}
A() : A(0) {}
int x;
};

但它在 VC 2010 中无法编译(“A”不是非静态数据成员或类“A”的基类)。有人知道哪里出了问题吗?

最佳答案

撰写本文时,Visual C++ 2010(也称为 VC++ 10.0)不支持委托(delegate)构造函数,而这正是您的代码片段所需要的。 VC++ 10.0 仅对 C++0x 提供部分支持,截至撰写本文时,还没有编译器实现了整个 C++0x 功能集(尽管这种情况很快就会改变,尤其是在 C++0x 标准最终确定之后)。

Scott Meyers 有 a summary of C++0x support in gcc and MSVC compilers .这是另一个列表 C++0x feature support in different compilers .另外,a list of C++0x features supported in Visual C++ 2010 straight from the horse's mouth .

现在,直接在构造函数的初始化列表中初始化所有成员:

class A
{
public:
A(int i) : x(i) {}
A() : x(0) {}
private:
int x;
};

关于VC2010 中的 C++0x 对等构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848312/

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