在這種情況下,我猜你不需要保留任何指針。給你的數據成員自動存儲時間。當包含它的對象SymbolTable
被構造時,它將被構造,並且當SymbolTable
對象被銷燬時被破壞。
換句話說,SymbolTable
完全封裝並擁有DynHashtable<string>
對象,具有控制其生命週期的專有責任。
此外,在C++中,你應該使用std::string
爲代表的字符串(必須包括<string>
標準頭導入它的定義:
#include <string>
class SymbolTable {
private:
DynHashtable<std::string> hst;
public:
SymbolTable() {
// ...
}
};
UPDATE:
從評論,似乎DynHastable
不是default-constructible,其構造函數接受一個int
作爲它的參數。在這種情況下,您必須在構造函數的初始化列表中構造您的對象:
class SymbolTable {
private:
DynHashtable<std::string> hst;
public:
SymbolTable() : hst(42) {
// ^^^^^^^^^
// ...
}
};
什麼是' DynHashtable'? – 0x499602D2 2013-04-06 13:38:45
這取決於。如果你有一個指向類實例的指針,你可以控制它的生命週期。如果您將該類的實例作爲另一個類的成員,那麼該實例的生命週期與封裝類的生命週期相同。 – 2013-04-06 13:39:45