我在C新型++(即時通訊使用的Visual Studio 2010旗艦版),我有一個問題要摧毀一類有一個std ::名單,我的代碼是:C++列表類VS2010終極
#include "p_list.h"
int main(){
p_list uno;
uno.~p_list();
return 0;
}
和類P_LIST是:
#pragma once
#ifndef LISTADO_H
#define LISTADO_H
#include <list>
using namespace std;
class p_list
{
public:
list<int> first;
p_list(void);
~p_list(void);
};
#endif
當我執行代碼顯示該錯誤
我不明白爲什麼,如果一個變化的std ::名單的標準::載體,代碼執行完美......但我NEAD一個std ::列表
thnxs
你很少會需要自己調用析構函數類的。在這種情況下,當'uno'超出範圍時會調用它。您間接調用它的最常見時間是使用'delete',但這已經過時了。從你的課堂細節來看,提供一個明確的析構函數似乎也毫無意義。你也可以在頭文件的全局命名空間中使用'namespace std;',這是沒有人使用該頭文件必須處理的。最後,'#pragma Once'和標準頭文件守護程序都做同樣的事情,但後者是標準C++的一部分。我會選擇一個並堅持下去。 – chris
教科書中的「超越它」的情況。 C++實際上比人們想象的要容易得多... –
嗯,我不應該說頭文件是一種語言特性,而是'#pragma once'不是。我猜標題衛兵只是你可以使用沒有擴展名的東西。 – chris