

こんにちは、VisualStudio2003でtemplateの使い方の学習中です。
言葉で書くと難しくなりますのでソースを書きます。
<h>
template<class MYTYPE> class CTreeMng
{
public:
CTreeMng(void);
~CTreeMng(void);
typedef enum {
SUCCESS// 成功
} RESULT;
RESULT SetPotision( NODE_POSITION pos );
};
<cpp>
template<class MYTYPE> CTreeMng<MYTYPE>::CTreeMng(void){}
template<class MYTYPE> CTreeMng<MYTYPE>::~CTreeMng(void){}
template<class MYTYPE> CTreeMng<MYTYPE>::RESULT CTreeMng<MYTYPE>::SetPotision( ){}
---------------------------------------------------------
上記の場合、
template<class MYTYPE> CTreeMng<MYTYPE>::RESULT CTreeMng<MYTYPE>::SetPotision( )
が、以下エラーとなります。
TreeMng.cpp(31): warning C4346: 'CTreeMng<MYTYPE>::RESULT' : 依存名は型ではありません。
仮に、
template<class MYTYPE> RESULT CTreeMng<MYTYPE>::SetPotision( )
でも、
TreeMng.cpp(31): error C2143: 構文エラー : ';' が 'CTreeMng<MYTYPE>::SetPotision' の前にありません。
となります。
正しい書き方は、どのように書けばよろしいのでしょうか?
アドバイスお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
×template<class MYTYPE> CTreeMng<MYTYPE>::RESULT CTreeMng<MYTYPE>::SetPotision( ){}
↓
○template<class MYTYPE> CTreeMng<MYTYPE>::RESULT CTreeMng<MYTYPE>::SetPotision(NODE_POSITION pos){}
余談ですが、実の所、テンプレートはヘッダーのみに書くものです。
この回答への補足
#余談で頂いたアドバイスで納得しました。
クラステンプレートはクラスのテンプレート(雛形)
よってヘッダに書くもの
クラスではない。
ありがとうございます。
すみません。質問の際に書くのを忘れていました。
template<class MYTYPE> CTreeMng<MYTYPE>::RESULT CTreeMng<MYTYPE>::SetPotision
( NODE_POSITION pos ){
}
としたのですが、やはり同じエラーでした。
#余談ですが、実の所、テンプレートはヘッダーのみに書くものです。
あ、そうなんですか、ヘッダにすべて書けば確かに上記問題は解決します。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
プログラミング 素数か素数では...
-
c言語の問題の説明、各所ごとに
-
DLLファイルの逆コンパイラにつ...
-
逆コンパイルと逆アセンブルの...
-
C言語について。
-
C#でログファイルにファイルパ...
-
終端記号、非終端記号とは
-
VisualStudioでC++クラスを追加...
-
int16_t の _t は何?
-
Cのオブジェクトファイルの逆ア...
-
C言語の関数のextern宣言
-
DNCL(共テ用プログラミング言語...
-
C#でTreeViewのCheckBoxのサイ...
-
CPUが16bitでも32bitOSでコンパ...
-
C言語 列挙型(enum型)変数について
-
コマンドプロンプトについて。
-
visual studioでフォームデザイ...
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
What class are you in? には何...
-
class roomとclassroom どちら...
-
pythonのerrorコード
-
HSTLやSSTL等のI/Oピン
-
テンプレートの特殊化でコンパ...
-
クラス名やモジュール名の競合...
-
プログラミングRubyについての...
-
syntax error 一行で書くと
-
Visualurubyのラジオボタンにつ...
-
【delphi】クラスの継承、互換...
-
【ruby】【文法】スパークラス...
-
【ruby】クラスCGIを改造して、...
-
【ruby】特異クラスを使って,Fi...
-
変数の隠蔽とは?
-
Rubyの質問です
-
Rubyの正規表現を引数に
-
No route matches [GET] "/post...
-
住所の追加について
-
「arg」は何の略?
-
教えてください。vb5.0
おすすめ情報