我想讓它創建自己的記錄。解決這個問題的最好方法是什麼?讓用戶創建自己的類的實例
我可以使用數組或矢量作爲變量名嗎?
int RecU[100];
class Record
{...};
int main()
{
Record RecU[1];
}
我試過了,我的程序崩潰了,所以我不知道它是否可能。
我想讓它創建自己的記錄。解決這個問題的最好方法是什麼?讓用戶創建自己的類的實例
我可以使用數組或矢量作爲變量名嗎?
int RecU[100];
class Record
{...};
int main()
{
Record RecU[1];
}
我試過了,我的程序崩潰了,所以我不知道它是否可能。
如果您希望客戶端代碼能夠隨意實例化Record
,您所要做的就是確保至少有一個構造函數可供他們(或工廠方法)使用。通常情況就是這樣。如果你聲明你的類是這樣的:
class Record
{
};
...然後沒有什麼可以阻止客戶端代碼實例化它。他們可以簡單地這樣做:
int main()
{
Record my_record;
}
在你的OP,它看起來像你想創建的100 Record
秒的陣列。你這樣做:
class Record
{
};
static const unsigned num_records = 100;
Record the_records[num_records];
int main()
{
for(unsigned i = 0; i < num_records; ++i)
Record& that_record = the_records[i]; // 'that_record' is a ref to one of the records
}
更好的是,你創建一個'std :: vector
@David,是的,我打算提一提,但是在我打字的時候忘記了! – 2010-11-19 22:08:20
一個問題是你有兩個定義RecU
,這兩個定義沒有任何關係。這是全球性的,並且在main()
中定義了一個,它隱藏了全球性的一個。
我不能相信,我沒有看到,我一直忘記,類是數據類型,那麼你會怎麼做呢? – TimothyTech 2010-11-19 21:48:18
你需要初始化數組中的每個記錄,然後才能使用它:Record [0] = new Record(); var firstRecord = RecU.First(); – Holystream 2010-11-19 21:35:38
@Holystream:他們不是指針。 – casablanca 2010-11-19 21:36:51
你是什麼意思在特定的「崩潰」?這是你使用的代碼嗎? 「用戶」或「創建他們自己的記錄」究竟意味着什麼? – 2010-11-19 21:36:58