C++ 导出带有模板基类的派生类,并且模板参数本身是派生的
我有一个简短的问题,希望有人知道我所尝试的是否可行 假设我有一个这样的模板基类C++ 导出带有模板基类的派生类,并且模板参数本身是派生的,c++,templates,dynamic-linking,dllexport,C++,Templates,Dynamic Linking,Dllexport,我有一个简短的问题,希望有人知道我所尝试的是否可行 假设我有一个这样的模板基类 template <class T> class CBase { public: CBase() {} void print() { std::cout << n std::endl; } private: T m_var; }; 模板 C类数据库 { 公众: CBase(){} void print(){std::在构建库时,您是
template <class T>
class CBase
{
public:
CBase() {}
void print() { std::cout << n std::endl; }
private:
T m_var;
};
模板
C类数据库
{
公众:
CBase(){}
void print(){std::在构建库时,您是否可以包含您的CDerived头(在翻译单元中)?有一个解决方案,我确实包含了它是的。我知道导出模板子类的一般解决方案,但这是一个特殊情况,在这里也有描述(最后一节)但是,如果可能的话,我并没有真正从文本中得到答案。因此,您在头文件中没有实现CBase
定义。模板类必须在头文件中实现。请尝试仅使用.H文件
class CDerived : public CBase<CDerived>
{
public:
CDerived () {}
};
#if defined(BUILD_LIBRARY)
# define EXPORT __declspec(dllexport)
#else
# define EXPORT __declspec(dllimport)
#endif
class EXPORT CDerived : public CBase<CDerived>
{
public:
CDerived () {}
};