スレを勃てるまでもないC/C++の質問はここで 5at TECH
スレを勃てるまでもないC/C++の質問はここで 5 - 暇つぶし2ch843:デフォルトの名無しさん
09/01/07 01:43:30
>>842
できました。ありがとうございます。

844:デフォルトの名無しさん
09/01/07 10:19:30
質問です( VC++ 2008EE )
クラステンプレート使用時、staticなconstメンバ変数の定義でエラーになってしまいます。

<ヘッダー>
template <typename T>
class samp{
private:
T number;
static const double db;
public:
...
void disp() const { std::cout << "db = " << db << std::endl; }
};

<cpp>
template <typename T>
const double samp<T>::db = 1.35;

このクラスのオブジェクトを生成して disp() をコールすると
db の外部参照が未解決と出てしまいます。
どう修正すべきでしょうか?

845:デフォルトの名無しさん
09/01/07 10:29:20
定義が無いもの、定義書けばいいだろ

846:デフォルトの名無しさん
09/01/07 10:43:00
VS2008で問題出ないけどなあ、それ。

847:844
09/01/07 11:00:00
>>845
<cpp>での定義の事でしょうか?
const double samp<int>::db = 1.35;
const double samp<char>::db = 1.35;
とかやれば通るんですがテンプレートの意味ないですよね・・・

>>846
マジですか?!
クラスの宣言と定義だけなら通るんですが、main にて
samp<int> smp;
smp.disp(); // ここでエラー
になってしまいます


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch