スレを勃てるまでもないC/C++の質問はここで 4
■ このスレッドは過去ログ倉庫に格納されています
0092デフォルトの名無しさん
2008/10/23(木) 22:01:38解決方法は見つけたのですが、
なぜ怒られるのか、わかりません。
理由が分かる方教えてください。
メンバ変数としてクラスを宣言して、
そのクラス名と同じ名前の関数を定義すると怒られます・・・。
----------------------
class Hoge {
};
class Niko {
public:
Niko();
~Niko();
void Hoge();
Hoge hoge; // NG
};
↓↓↓↓↓
class Niko {
public:
Niko();
~Niko();
Hoge hoge; // 何故か入れ替えるとOK
void Hoge(); // もしくは ::Hoge hoge; とすることでもOK
// または Hoge2()など、別名にすることでもOK
};
Hoge()はNikoのメンバ関数のつもりですが、
Hogeクラスのコンストラクタとして解釈されている???
■ このスレッドは過去ログ倉庫に格納されています