我正在用 C++ 编写内存分配程序,但在程序中出错。
我不明白发生了什么。
请帮忙。
#include<iostream>
using namespace std;
class Test{
    int *m_ptr;
    private:
        void Test(){
            m_ptr = new int(4);
        }
        ~Test(class Test){
            cout<<"Object gets destroyed..";
        }
};
int main(){
    Test *ptr = new Test();
    delete [] ptr;
}
Run Code Online (Sandbox Code Playgroud)
我也是 C++ 的新手
private:
    void Test(){
        m_ptr = new int(4);
    }
Run Code Online (Sandbox Code Playgroud)
应该
public:
    Test(){
        m_ptr = new int(4);
    }
Run Code Online (Sandbox Code Playgroud)
构造函数没有返回类型,如果你想在其中使用main它应该是公共的。
和
    ~Test(class Test){
        cout<<"Object gets destroyed..";
    }
Run Code Online (Sandbox Code Playgroud)
应该
    ~Test(){
        cout<<"Object gets destroyed..";
    }
Run Code Online (Sandbox Code Playgroud)
析构函数没有参数,它们应该(几乎总是)是公共的。
还
delete [] ptr;
Run Code Online (Sandbox Code Playgroud)
应该
delete ptr;
Run Code Online (Sandbox Code Playgroud)
如果您分配 withnew然后您解除分配 with delete。仅当您分配 with 时new[],您才会解除分配 with delete[]。
一个非常小的程序中有很多基本的语法错误。无论您正在寻找什么来源来学习 C++ 程序的结构,都不是很好。在进行内存分配(这是一个非常复杂的主题)之前,花一些时间练习更简单的主题可能是值得的,
感谢 dvix 和用户帮助我发现代码中的其他问题。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           52 次  |  
        
|   最近记录:  |