gpt4 book ai didi

c++ - 为什么我可以在 C++ 中调用已删除的私有(private)构造函数?

转载 作者:太空狗 更新时间:2023-10-29 23:49:17 27 4
gpt4 key购买 nike

class class1
{
private:
class1() = delete;
public:
class1(int a) {}
};

class class2
{
class1 obj;
};

以上内容使用 VS2015 更新 3 进行编译。我正在创建一个也被删除的私有(private)构造函数。两者之一应该已经创建了一条错误消息。我在这里缺少什么?

最佳答案

I'm creating a private constructor which is also deleted.

这没有错。

One of the two should already create an error message.

没有。

Why can I call deleted, private constructor in C++?

你不能,你也没有。

What am I missing here?

一个电话。

此程序中没有任何内容会尝试实例化任何内容,因此不会失败。

现在尝试以下任一方法:

int main()
{
class1 obj;
}
//----
int main()
{
class2 obj;
}

……然后看着 Spark 四溅。

关于c++ - 为什么我可以在 C++ 中调用已删除的私有(private)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531341/

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