我想創建一個這樣的模板節點類
template <class T>
class Node {
public:
Node() {
val = T;
// Does not work: new T, NULL, 0, ""
}
// ...
private:
vector<Node<T> *> children;
T val;
Node<T> * parent = NULL;
}
建構式應該沒有初始值作為引數,并且不允許多載。我可能不會在建構式中做任何事情,但例如對于整數,我希望這個基值為 0,等等。本質上,我試圖避免的問題是消除未定義的行為,例如使用整數時的此類值(第一個是沒有設定值的根):- 1021203834 1 2 11 12 21 22 1 11 12
uj5u.com熱心網友回復:
要么你可以寫
Node() : val() {}
或者
Node() : val{} {}
或者在類定義中寫
T val {};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410969.html
標籤:
上一篇:在C 中強制執行精確的可呼叫簽名
