就活と院試 / 2010/02/05 (Fri) / 編集 |
C++でコンストラクタありのクラスのインスタンスを配列に格納する方法メモ、出典は[C/C++サンプル]オブジェクト配列の動的宣言です。
ちなみにメンバー関数を呼ぶ出すときは→を使うというのに注意しないといけないらしい。
それにしても、#defineって便利だったんだな、、、使わないようにするの結構大変だったよ。。。
Chromosome** population = new Chromosome*[population_num]; for( int n = 0; n < population_num; n++ ) population[n] = new Chromosome(gene_num,gene_type_num);「non scalar」ばっかり言われて困ってたんだが、単純に何もかもが間違ってたというね、、、
ちなみにメンバー関数を呼ぶ出すときは→を使うというのに注意しないといけないらしい。
それにしても、#defineって便利だったんだな、、、使わないようにするの結構大変だったよ。。。
PR
トラックバック
URL :
コメント
いや、全然いいよ
言い方がわるかったね
使ってもいいんだが、使い方が問題でね、、、
例えば今回は遺伝的アルゴリズムのプログラムの遺伝子クラスの中で、遺伝子数とか突然変異率とかのパラメータが#defineされてたんだよ。
そういうことすると、他のプログラムに転用する度にヘッダファイルを書き換えることになるし、引数で突然変異確立を変更することも出来ない(パラメータ変更のたびに再コンパイル)、ひとつのプログラム中で2種類のGAを回すとかもできなくなるわけで、、、
後輩に渡すものだから、なるだけ使いまわすときの修正箇所が減るようにしたかったんだよ。
使ってもいいんだが、使い方が問題でね、、、
例えば今回は遺伝的アルゴリズムのプログラムの遺伝子クラスの中で、遺伝子数とか突然変異率とかのパラメータが#defineされてたんだよ。
そういうことすると、他のプログラムに転用する度にヘッダファイルを書き換えることになるし、引数で突然変異確立を変更することも出来ない(パラメータ変更のたびに再コンパイル)、ひとつのプログラム中で2種類のGAを回すとかもできなくなるわけで、、、
後輩に渡すものだから、なるだけ使いまわすときの修正箇所が減るようにしたかったんだよ。