簡體   English   中英

編譯 c++ 程序的 memory 分配代碼時出錯

[英]got error while compiling memory allocation code of c++ program

我正在 c++ 中編寫 memory 分配程序,但程序出錯。
我不明白發生了什么。
請幫忙。

#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;
}

我也是 c++ 的新手

private:
    void Test(){
        m_ptr = new int(4);
    }

應該

public:
    Test(){
        m_ptr = new int(4);
    }

構造函數沒有返回類型,如果你想在main中使用它,它應該是公共的。

    ~Test(class Test){
        cout<<"Object gets destroyed..";
    }

應該

    ~Test(){
        cout<<"Object gets destroyed..";
    }

析構函數沒有參數,它們應該(幾乎總是)是公共的。

delete [] ptr;

應該

delete ptr;

如果您使用new分配,則使用delete取消分配。 僅當您使用new[]分配時,您才會使用delete[]取消分配。

在一個非常小的程序中有很多基本的語法錯誤。 無論您正在尋找什么資源來學習 C++ 程序的結構都不是很好。 在進行 memory 分配(這是一個非常復雜的主題)之前,可能值得花一些時間練習更簡單的主題,

感謝 dvix 和用戶幫助我發現代碼中的其他問題。

您的構造函數和析構函數(被調用)應該是public而不是private

此外,析構函數不使用任何 arguments。 它應該是

~Test() {
    cout<<"Object gets destroyed..";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM