誰かが関数(メイン関数以外)でオブジェクトの配列を作成するために何をする必要があるか教えてもらえますか?
ある種の例を作って説明しようと思います...
クラスSchedule.hを実装するTimeScheduler.cppという名前のプログラムがあるとしましょう(そして、メソッドを定義する別のファイルSchedule.cppに実装があります)。
宣言ファイルでは、2つのコンストラクターを宣言しました
Schedule(); //the default
と
Schedule(int, int, int);//accepts three arguments
要点を理解するために、たとえばメインプログラムファイルTimeScheduler.cppで、Scheduleクラスから継承された関数とは別に、このプログラムで独自の関数を作成したとします。そのため、プロトタイプが一番上に表示されます。
/*prototypes*/
void makeSomeTime();
等.....
我々は持っています
main(){
//etc etc...
}
次に、これらのプログラム関数を定義します
void makeSomeTime(){
//process
}
関数makeSomeTime()内で、次のようなScheduleオブジェクトの配列を作成するとします。
Schedule ob[]={
summer(5,14, 49),
fall(9,25,50)
};
このオブジェクトの配列を作成できるようにするには、関数makeSomeTime()に対して何をする必要がありますか。私が尋ねる理由は、現在、main()でこのオブジェクトの配列を作成できるという点で、自分のプログラムに問題があるためです。ただし、例を示したような関数ではできません。奇妙なことに、関数内にオブジェクトの動的配列を作成できるようになります。
Schedule *ob = new Schedule[n+1];
ob[2]= Schedule(x,y,z);
main()で非動的配列に割り当てられるのに、関数で割り当てられないのはなぜですか?