我的課的開頭是:自動初始化?
class Player{
private:
Cardpile hand;
...
}
哪裏Cardpile是另一個類。如果我這樣做Player *p=new Player();
手自動初始化?我問這是因爲我試圖找出分段錯誤。我在我的代碼中到處都是。我能想到的最後一件事是hand
未初始化。
編輯:這是我得到的分割錯誤。 Card是Cardpile內部的一個類。我知道Card和Cardpile都可以使用。
Program received signal SIGSEGV, Segmentation fault.
0x0000000000402ac0 in __gnu_cxx::new_allocator<Card*>::construct (this=0x6070a8, __p=0x4015c6, [email protected]) at /usr/include/c++/4.4/ext/new_allocator.h:105
105 { ::new((void *)__p) _Tp(__val); }
編輯:Cardpile類:
class Cardpile : private vector<Card*> {
public:
using vector<Card*>::size;
using vector<Card*>::at;
Cardpile();
...
}
Cardpile::Cardpile(){}
編輯:這是一個很酷的事實:P ==如果p開始NULL不檢查。我想這就是爲什麼我不斷收到分段錯誤。
這取決於您的Cardpile類的構造函數。顯示完整的'Cardpile'定義,數據成員和構造函數(如果有的話)。 –
你可能會更喜歡'std :: vector'而不是'std :: vector '。 –
fredoverflow