Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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
C++ 无构造函数类对象的动态分配_C++ - Fatal编程技术网

C++ 无构造函数类对象的动态分配

C++ 无构造函数类对象的动态分配,c++,C++,如何动态分配没有定义构造函数的类对象 我试过: A * newPtr = new A(); 但它给了我gdb上的某种内存泄漏 干杯 如果没有定义的构造函数,并且标准规则允许,那么您将得到一个隐式声明的构造函数,否则您的代码将根本无法编译 因此,如果您没有定义任何构造函数,并且您的代码进行编译,那么请确保声明并定义了一个默认构造函数,这样您实际上就有了一个构造函数 由于需要删除指针以从堆中释放内存,因此出现泄漏。在a*newPtr=newa之后;您必须通过删除newptr来释放内存此问题中提到了

如何动态分配没有定义构造函数的类对象

我试过:

A * newPtr = new A();
但它给了我gdb上的某种内存泄漏


干杯

如果没有定义的构造函数,并且标准规则允许,那么您将得到一个隐式声明的构造函数,否则您的代码将根本无法编译

因此,如果您没有定义任何构造函数,并且您的代码进行编译,那么请确保声明并定义了一个默认构造函数,这样您实际上就有了一个构造函数


由于需要删除指针以从堆中释放内存,因此出现泄漏。

在a*newPtr=newa之后;您必须通过删除newptr来释放内存此问题中提到了几个不相关的问题。很难理解你到底在问什么。如果没有构造函数,就不可能创建新的构造函数。尽管编译通常可以为您生成构造函数。如果gdb抱怨内存泄漏,很可能是因为您没有删除newPtr;或者有原始的指针。如果是这样的话,考虑使用像STD::UnQuyQPTR之类的智能指针。即使删除了,每个类都有一个构造函数。请提供一个例子来更好地解释你想要达到的目标和问题所在。如果你的班级没有公开课?那么,如果您想动态分配或使用自动存储,这并不重要,您根本无法做到。看起来你在混合不同的东西。没有新的构造器;行不通