私は本当に複雑なクラスを持っています。それは別のクラスのベクトルの中にあります。とにかく、私が見つけた問題の中にある、より単純なものを報告します。
// the inner class
class DuffyDuck{
int isblack; // 0 is white, 1 is black
int n_duck;
vector<DuffyDuck> * point_Duck;
public:
DuffyDuck(int isblack):isblack(isblack){
}
void set_point(vector<DuffyDuck> & Abitants){
point_Duck=&Abitants;
}
};
// the complessive class
class DuckCity{
vector<DuffyDuck> DuckAbitants;
public:
DuckCity(int numwhite,int numblack){
for(int i=0;i<(numblack+numwhite);++i){
DuckAbitants.push_back(DuffyDuck(i>=numblack));
DuckAbitants[i].set_point(DuckAbitants);
}
}
};
これでうまくいきます (私はいくつかの関数で point_Duck を使用しています) が、そのようなことをすると、例で "(*point_Duck)[2].n_duck;" と呼ばれます。関数でプロジェクトがクラッシュします。
それは私がそれをした場合にのみ起こります:
DuckCity LittleTown(0,0);
LittleTown=DuckCity(3,5);
そして、ポインタを呼び出すいくつかの関数を使用した後。
直接 LittleTown(3,5) を実行すると、すべて問題ありません。
十分に説明したことを願っています。