[英]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.