オブジェクト指向を勉強していて詰まりました
タイトルの通りなのですがラジオボタンのように複数のボタンから一つだけが違う描写になるようなボタンのクラスを作りたくてstatic変数を利用しようと思いましたが、○○が未解決とコンパイラにはじかれます。
class CButton{
private:
LPSTR m_text; //ボタンの名前
int m_id;
public:
static int a;
void Draw(HDC hdc);
}
のようなクラスで、aとidが一致するものだけDrawで条件分岐し、描写を変えるみたいなことはできるのでしょうか?
見当はずれな考え方かもしれませんがよろしくお願いします。
C++ファイルに
int CButton::a = 0;
のように記述すれば未解決エラーは無くなると思います。
未解決エラーはなくなりましたが・・・
static変数は作るたびに一個ずつ外部で宣言しないとだめなのでしょうか?
> static変数は作るたびに一個ずつ外部で宣言しないとだめなのでしょうか?
クラス内に書いたstatic変数は"宣言"してるだけです。
だから"定義"が必要なの。
定義と宣言の違いを調べていくうちになんとなくわかってきました。
ラジオボタンのような場合static変数を使うのと実際にクラスを定義している関数内で別の変数を用意する方法とどちらが一般的ですか?
case by case じゃないでしょか。
ですか・・・
とりあえずせっかくなのでstaticのほうで行ってみます
回答してくださった皆様ありがとうございました!!
ツイート | ![]() |