C というか C++ ですよね…


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

投稿者 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));

でもいいかも知れませんが。



レスポンス:



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