ファイルの内容は次のとおりです。最初にテンプレート化されたクラス: .h ファイル内:
template <class T>
class templatedClass
{
public :
templatedClass(T val);
~templatedClass() {}
void writeV();
T v;
};
.cpp ファイル内:
template <class T>
templatedClass<T>::templatedClass(T val)
{
v = val;
}
template <class T>
void templatedClass<T>::writeV()
{
std::cout << v << std::endl;
}
ビルドするときはすべて問題ありません。
継承されたクラス: .h ファイル内:
class inheritedClass : public templatedClass<float>
{
public :
inheritedClass(float val);
~inheritedClass() {}
void write();
};
.cpp ファイル内:
inheritedClass::inheritedClass(float val)
: templatedClass<float>(val)
{
}
void inheritedClass::write()
{
writeV();
}
ビルド時に、次のリンク エラーを受け取りました。
Undefined symbols for architecture x86_64:
"templatedClass<float>::writeV()", referenced from:
inheritedClass::write() in inheritedClass.o
"templatedClass<float>::templatedClass(float)", referenced from:
inheritedClass::inheritedClass(float) in inheritedClass.o
コードの何が問題になっていますか? 成功するには、XCode で特別なビルド オプションを使用する必要がありますか?
ご回答ありがとうございます。