将构造函数实现与模板从头文件分离

将构造函数实现与模板从头文件分离

本文介绍了将构造函数实现与模板从头文件分离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的头文件有

template <typename T>
class AA : public BB<T>
{
public:
    AA()
    { ... }


b $ b

这是工作正常。但我需要从头文件中分离构造函数的实现。

this is working fine. But I need to separate the constructor implementation from header file.

所以在cpp中,我有

template <typename T>
AA<T>::AA()
{ ... }

当我编译这个,它编译,但我得到未解决的外部符号错误。

When I compile this, it compiled but I get unresolved external symbol error. What am I missing here?

推荐答案

您可以使用以下方式在实现文件中显式实例化模板:

You can explicitly instantiate templates in your implementation file using :

template class AA<int>;

这将从模板生成一个定义,但它只有当你知道什么类型类客户将使用

this will generate a definition from a template, but it is of use only if you know what types your class clients will use

这篇关于将构造函数实现与模板从头文件分离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 03:40