码迷,mamicode.com
首页 > 编程语言 > 详细

C++将模板的声明和定义放置在同一个头文件里

时间:2018-08-06 15:22:27      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:col   分离编译   nbsp   标准   生成   template   style   amp   类对象   

1. 一个类:
头文件用于保存类的声明;定义文件保存类的实现。
 
2. 分离编译模式:
允许在一个编译单元(.cpp文件)中定义函数、类型、类对象等,然后在另一个编译单元中引用它们。编译器处理完所有的编译单元后,链接器接下来会处理所有指向extern符号的引用(有时为缺省),从而生成单一可执行文件。
 
3. 模板类型:
模板类型不是一种实类型,它必须等到类型绑定后才能确定最终类型,所以在实例化一个模板时,必须要能够让编译器“看到”在哪里使用了模板,而且必须看到模板确切的定义,而不仅仅是它们的声明,否则不能顺利地产生编译代码。因此,标准会要求模板的实例化与定义体放到同一编译单元中。
// Temp.h
template <class T>
class Temp
{
public:
    void set_value(const T& rT);
protected:
private:
    T m_value;
};
 
template <class T>
void Temp<T>::set_value(const T& rT)
{
    m_value = rT;
}

 

C++将模板的声明和定义放置在同一个头文件里

标签:col   分离编译   nbsp   标准   生成   template   style   amp   类对象   

原文地址:https://www.cnblogs.com/inception6-lxc/p/9430187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!