c++ - 如何修复基类中的内存分配错误?

标签 c++ memory object unhandled-exception

我制作了一个包含两个类的程序。基类包括其派生类的指针对象。然后我在基类的构造函数中初始化指针对象。

我的编译器在编译过程中没有给我报错,但是当控制台窗口出现时程序崩溃,为派生类的对象报错UNHANDLED EXCEPION BAD ALLOCATION。我应该怎么做才能修复它?

代码如下:

class x;

class y
{
    private:

      x *objx; // here is the error
    ...........................

};

class x: public y
{
    ...........................
    ................
};

y::y()
{
     objx=new x(); // bad allocation and the program crashes

     // I have also tried this way by commenting objx=new x();

     *objx=0; // but still the program crashes.
}

最佳答案

由于在派生类中调用构造函数将调用父类中的构造函数,因此看起来您将在那里遇到递归构造问题 - 这可能会导致异常。

为避免这种情况,您可以将构造函数中的“new x()”移到它自己的函数中。

关于c++ - 如何修复基类中的内存分配错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125215/

相关文章:

java - 在 C++ 中 fork 一个新进程并执行一个 .jar 文件

c - asprintf();导致内存问题

java - 简单的 Android 应用程序即将 OOM

string - swift,使用字符串引用对象名称

javascript - 转换 javascript 对象列表

c++ - Cinder:如何获取指向已生成但从未在屏幕上显示的数据\帧的指针?

c++ - : Expected constructor,析构函数错误,或者 '.' token之前的类型转换 - 理解fstream

node.js - fatal error : Evacuation Allocation failed - process out of memory

c# - 无法为对象类重载运算符 '+'

c++ - C 中优雅的二进制 i/o?