我的老師讓我做最後的作業。我需要在C++中列出一些東西(無法使用boost,STL等)。我的東西類必須在List類之後定義。小樣本是我的嘗試:轉發聲明和刪除
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
class Stuff;
class List
{
private :
Stuff *s;
int n;
public :
List(int n)
{
this->n = n;
s = new Stuff[n];
}
~List()
{
delete[] s;
s = NULL;
n = 0;
}
};
class Stuff
{
private :
string name;
double price;
public :
Stuff(){}
};
int main(int argc, char **argv)
{
return 0;
}
我知道,那:
「如果被刪除的對象具有不完整的類類型在 刪除的點和完整的類有一個不平凡的析構函數或一個 解除分配函數,行爲是未定義的。「
但是我怎麼做呢?有任何想法嗎?記住,我不能使用boost,STL等。而Stuff類必須在List類之後定義。我只是不知道...
這很荒謬。教師在編寫C++時如何禁止使用C++標準庫?要求他們編寫一個打印「Hello World」的程序,而不使用像「System。*」等標準Java程序包,JNI也是不允許的。 – 2013-05-17 17:29:57
gcc不會編譯此代碼,原因與您在報價中提到的內容類似。 –
「Stuff類必須在List類之後定義」。這是<我們老師的要求還是你認爲它應該是這樣? – jrok