ポインタを使いましょう。


[ レスポンス ] [ でんげき☆ゲーマーズ ]

投稿者 すずにゃん 日時 2000 年 8 月 11 日 17:59:08: [DG-002133]

回答先: Re: C というか C++ ですよね… 投稿者 ぷろぐらま 日時 2000 年 8 月 11 日 17:04:11

ポインタを使ってみました。

RECT DefRect={0,0,0,0}; //デフォルトのRECT
class AAA{
public:
AAA(byte a=0,byte b=0,LPRECT c=&DefRect); // 引数をポインタに
byte X;
byte Y;
RECT Z;
};
AAA::AAA(byte a,byte b,LPRECT c) // 引数変更
{
X=a;
Y=b;
Z=*c; // RECT構造体コピー
};

void main(){
byte a=10;
byte b=20;
RECT c={10,30,20,50};

AAA class; // この辺りでエラーが出て動作確認できませんでした(^^;
class=AAA(a,b,c);
}


クラスはまだ慣れてないので(Cとアセンブラを組み合わせて・・・)もっといい方法があるかも。
コピーコンストラクタなんて理解できてないし・・・。

関数の引数に構造体を指定しないほうがいいですよ。
呼び出しもとの変数から構造体cへコピーして、コンストラクタ内でZへコピーして・・・なんて無駄じゃないですか。
引数が多くなるなら(構造体の)ポインタを使うのが僕の主義です。



レスポンス:



[ レスポンス ] [ でんげき☆ゲーマーズ ]