【初心者歓迎】C/C++室 Ver.24【環境依存OK】

このエントリーをはてなブックマークに追加
206デフォルトの名無しさん
質問です。
開発環境は、Microsoft Visual C++ .NETです。

class.group.method()のような記述方法を可能にしたく、
groupを構造体、methodをその構造体内の関数として以下のように宣言しました。

class Test
{
public:
struct a
{
void b();
}a;
};

void Test::a::b()
{
}

これにより、以下のような記述でコンパイルは通りました。

void hoge()
{
Test tes;
tes.a.b();
}
207続き:2005/11/18(金) 11:48:03
しかし、問題がIntelliSenseで、tes.a.までタイプすると、
「. or -> の左側の式を理解できません」と言われ、メソッド一覧が機能してくれません。
(tes.ならば構造体の一覧が出てきます)
これは、IntelliSenseのバグなのでしょうか?
または、C++でクラス内の構造体の中に関数を置くことは言語仕様上イリーガルなのでしょうか?
他にも、良い方法がありましたら教えていただけると有り難いです。
以上です。よろしくおねがいいたします。