投稿者 WiNK 日時 2000 年 8 月 11 日 06:15:43: [DG-000571]
回答先: C言語分かる人教えて下さい 投稿者 ぷろぐらま 日時 2000 年 8 月 11 日 04:36:24
なんかそもそも構文がおかしい気がしますが…。
というかその構文では ぷろぐらま さんが何をしたいのかすら
いまいち良く分からなかったり…。
class AAA
{
public:
AAA(byte, byte, RECT);
private:
byte a, b;
RECT c;
};
AAA::AAA(byte a,byte b,RECT c){
a = 0;
b = 0;
c.left = 0;
c.right = 0;
c.top = 0;
c.bottom = 0;
}
// 省略
…ということなのかな…?。
でもわざわざ引数として渡された変数を
全部 0 で初期化するってのもなかなか謎だし…。
そもそもコンストラクタっていうのが
オブジェクト内のメンバの初期設定をするためのものだ、
(=変数のデフォルト値の設定 etc. をする)
というのは理解されていますか?
ほんとにやりたいのは
class AAA
{
public:
AAA();
private:
byte a, b;
RECT c;
};
AAA::AAA(){
a = 0;
b = 0;
c.left = 0;
c.right = 0;
c.top = 0;
c.bottom = 0;
// 省略
}
なのではないかな~とも思うんですがどうでしょう?
変数 c の初期化については
memset(&c, 0, sizeof(RECT));
でもいいかも知れませんが。