C++ 定义C+;时XCode中的链接错误+;从模板化类继承的类

C++ 定义C+;时XCode中的链接错误+;从模板化类继承的类,c++,xcode,class,templates,inherited,C++,Xcode,Class,Templates,Inherited,以下是文件的内容。首先是模板类: 在.h文件中: template <class T> class templatedClass { public : templatedClass(T val); ~templatedClass() {} void writeV(); T v; }; class inheritedClass : public templatedClass<float> { public :

以下是文件的内容。首先是模板类: 在.h文件中:

template <class T>
class templatedClass
{
    public :

    templatedClass(T val);
    ~templatedClass() {}

    void writeV();

    T v;
};
class inheritedClass : public templatedClass<float>
{
    public :

    inheritedClass(float val);
    ~inheritedClass() {}

    void write();
};
模板
类模板类
{
公众:
模板类(T val);
~templatedClass(){}
无效写入();
电视
};
在.cpp文件中:

template <class T>
templatedClass<T>::templatedClass(T val)
{
    v = val;
}

template <class T>
void templatedClass<T>::writeV()
{
    std::cout << v << std::endl;
}
inheritedClass::inheritedClass(float val)
: templatedClass<float>(val)
{

}

void inheritedClass::write()
{
    writeV();
}
模板
templatedClass::templatedClass(T val)
{
v=val;
}
模板
void templatedClass::writeV()
{

std::cout您有一个缺少模板类实例化的问题。要解决它,您应该将模板实现代码放在头文件中。我的意思是,这部分:

template <class T>
templatedClass<T>::templatedClass(T val)
{
    v = val;
}

template <class T>
void templatedClass<T>::writeV()
{
    std::cout << v << std::endl;
}
模板
templatedClass::templatedClass(T val)
{
v=val;
}
模板
void templatedClass::writeV()
{

我不能谢谢你,马丁!它起作用了!
template <class T>
templatedClass<T>::templatedClass(T val)
{
    v = val;
}

template <class T>
void templatedClass<T>::writeV()
{
    std::cout << v << std::endl;
}