gpt4 book ai didi

C++ - 如果构造函数是私有(private)的,这会做什么?

转载 作者:IT老高 更新时间:2023-10-28 22:25:30 26 4
gpt4 key购买 nike

在下面的代码中,为什么编译器没有报错mClass2?

class CMyClass{
private:
CMyClass(){}
};

void TestMethod(){
CMyClass mClass1; //Fails.
CMyClass mClass2(); //Works.
}

最佳答案

因为您刚刚声明了一个返回 CMyClass 的零参数函数 mClass2。这是一个有效的选项,因为可能存在该函数可以访问的 static CMyClass 实例。请注意,CMyClass 仍然有一个公共(public)复制构造函数。

(为了说服自己,将此模块编译为汇编程序并观察注释掉 CMyClass mClass2(); 行会产生相同的输出。)

关于C++ - 如果构造函数是私有(private)的,这会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773057/

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