
C++で、以下のようなコードを書いたのですがコンパイルが通りません。
どのようにコードを修正すればコンパイルを通すことができるでしょうか??教えてください。
template <class _T>
class Test;
// 上をclass Test<_T>にしてもコンパイルは通りません
void main()
{
Test<int> hoge;
}
template <class _T>
class Test
{
public:
_T val;
Test():val(0){};
};
/*!
エラー内容:
前方宣言class Test;の場合
'hoge'が未定義のclass'Test<_T>'で使用しています。
with
{
_T=int
}
前方宣言class Test<_T>;の場合
構文エラー:';'が'<'の前にありません。
構文エラー:'<'
'hoge'が未定義のclass 'Test<_T>'で使用しています。
*/
開発環境:
VisualStudio2005 AcademicEdition
WindowsXP Professional
メモリ:2048MB
CPU:Core2Duo 1.33GHz
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
class Test;
int main ()
{
Test hoge; // Testが未定義
return 0;
}
class Test {
public:
int val_;
Test (int val) : val_(val) {}
};
とやったらエラーですよね。
これと同じです。
hogeを定義するタイミングで,その型Test<int>が定義できないといけません。
回答ありがとうございます。
確認してみたところ、なるほど確かに、そう言われて問題の個所を訂正したところコンパイルが通りました。
関数のプロトタイプ宣言と混同していたようです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
End Sub が必要です。
-
フォートランのエラーについて...
-
対応する関数ヘッダーがありません
-
Excel VABについて 下記記述が...
-
STL mapでアクセス違反
-
プロシージャ名のところでエラ...
-
Delphiでif文がうまく書けないです
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
教えて下さい
-
メッセージボックスのOKボタ...
-
配列数式の解除
-
UserForm1.Showでエラーになり...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロ VBA プロシー...
-
お助けください!VBAのファイル...
-
ExcelのVBA。public変数の値が...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
End Sub が必要です。
-
Excel VABについて 下記記述が...
-
フォートランのエラーについて...
-
intel fortranのエラーで困って...
-
他クラスからForm1内コントロル...
-
ラズパイ上の、pythonのエラー...
-
初歩的な質問ですが・・・
-
プロシージャ名のところでエラ...
-
python プログラミング vim
-
C言語の質問です。
-
Texに詳しい方よろしくお願いい...
-
構造体のポインタ参照
-
C++のことで・・教えてください。
-
VBでエラー'ActiveX component ...
-
ダブルコートのエスケープ
-
ISLispのsetq関数について教え...
-
typedef による2重定義
-
43:syntax error at end of input
-
解説サイトに従ったfortran並列...
-
コンパイル時のエラー
おすすめ情報