を割り当てています。ベースオブジェクトにオブジェクトを追加しようとしていますが、コンパイルできますが、addbase関数内でクラッシュする可能性があります。 pointerclass(){base *basees=new base[5];}
でオブジェクトの配列にオブジェクトを割り当てます。このコードでは、オブジェクトにC++
class base
{
string a;
public:
void setstring(string);
string showstring(){ return a; }
};
void base::setstring(string ss)
{
a=ss;
}
class pointerclass
{
public:
base *basees;
pointerclass() {base *basees=new base[5]; }
void addbase(base,int);
};
void pointerclass::addbase(base ab,int i)
{
//will crash here
basees[i] = ab;
}
int main()
{
base a,b,c;
a.setstring("something");
pointerclass aaa;
aaa.addbase(a,0);
cout<<aaa.basees[0].showstring();
return 0;
}
適切なツールのためのメモリを割り当てる必要がありますが、あなたのデバッガです:あなたは、コンストラクタ内行うには何を意味するのか
は次のとおりです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –
前のコメントは "あなたの質問を編集するべきです" - 拡張で明白に何かが間違っていたことをご指摘ください。 –