Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找出编译器在VS2012中自动创建副本构造函数的原因? 我更新VS2010 C++应用程序到VS2012,我得到错误 cannot access private member declared in class 'CObject'_C++_Visual Studio 2012 - Fatal编程技术网

如何找出编译器在VS2012中自动创建副本构造函数的原因? 我更新VS2010 C++应用程序到VS2012,我得到错误 cannot access private member declared in class 'CObject'

如何找出编译器在VS2012中自动创建副本构造函数的原因? 我更新VS2010 C++应用程序到VS2012,我得到错误 cannot access private member declared in class 'CObject',c++,visual-studio-2012,C++,Visual Studio 2012,这似乎是由于编译器生成的函数 CObArray::CObArray(constcobarray&) 有没有办法禁用编译生成的函数?或者一种知道它为什么要创建函数的方法 这似乎是由于编译器生成的函数造成的您为什么这样认为?不要尝试复制对象?您的代码中有一个未显示的错误。您是否已经了解编译器生成的函数的一般工作原理,并且相信在这种情况下不应生成复制构造函数有一个特定的原因case?这对于CObject类来说是非常有意的,它的复制构造函数和赋值运算符被声明为private。在现代C++中,它们将被声明

这似乎是由于编译器生成的函数

CObArray::CObArray(constcobarray&)


有没有办法禁用编译生成的函数?或者一种知道它为什么要创建函数的方法

这似乎是由于编译器生成的函数造成的
您为什么这样认为?不要尝试复制对象?您的代码中有一个未显示的错误。您是否已经了解编译器生成的函数的一般工作原理,并且相信在这种情况下不应生成复制构造函数有一个特定的原因case?这对于CObject类来说是非常有意的,它的复制构造函数和赋值运算符被声明为private。在现代C++中,它们将被声明为代码> =删除< /代码>。同样,必须确保不能复制CObject派生类。