プロが教えるわが家の防犯対策術!

c++を勉強していてわからない事があり、質問させていただきたいと思います。
c++でテンプレートを使ったクラスを以下のように作りました。
//test.h
template <class T>
class Test
{
public:
Test();
T m_X;
};

template <class T>
Test<T>::Test<T>() //<<<実際のファイルではここが10行目です
{
m_X = 10;
}

//test.cpp
#include <iostream.h>
#include "Test.h"
void main() {
Test<int> t;
cout << t.m_X << endl;
}

これをVC++6.0のコンパイラclでは問題なくコンパイルできるのですが、Borland C++ Compailerのbcc32でコンパイルすると、「エラー E2040 Test.h 10: 宣言が正しく終了していない」とのエラーメッセージがでます。なぜ、clでは問題なくコンパイルできるのにbcc32ではコンパイルできないのでしょうか。
ご存知の方、教えていただけないでしょうか。よろしくお願いします。

A 回答 (1件)

宣言が正しく終了していないから。


Test<T>::Test()
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。<T>の使い方を間違っていたのですね。clでは特に問題なくコンパイルできていたので間違いに気付きませんでした。

お礼日時:2003/04/21 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!