函数模板和类模板成员函数的定义通常放在头文件中

2023-05-16

今天写程序时,将函数模板的声明和定义分开放在头文件和.cpp文件中,发生了连接错误。上网查看资料和查看《C++ PRIMER 5》P582发现,:

函数模板和类模板成员函数的定义通常放在头文件中,除非使用export关键字实现分离。


下面是《C++ PRIMER 5》的原文(P582):

关键概念:模板和头文件

模板包含两种名字:

1.那些不依赖于模板参数的名字。

2.那些依赖于模板参数的名字。

    当使用模板时,所有不依赖于模板参数的名字都必须是可见的,这是由模板的提供者来保证的。而且,模板的提供者必须保证,当模板被实例化时,模板的定义,包括类模板的成员的定义,也必须是可见的。

    用来实例化模板的所有函数、类型以及与类型关联的运算符的声明都必须是可见的,这是由模板的用户来保证的。

    通过组织良好的程序结构,恰当使用头文件,这些要求都容易满足。模板的设计者应该提供一个头文件,包含模板定义以及在类模板或成员定义中用到的所有名字的声明。模板的用户必须包含模板的头文件,以及用来实例化模板的任何类型的头文件。

转载于:https://www.cnblogs.com/cnsec/p/3789825.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数模板和类模板成员函数的定义通常放在头文件中 的相关文章

  • SerialPort IOException Workaround in C#

    ref http zachsaw blogspot com 2010 07 serialport ioexception workaround in c html As promised I 39 ve whipped up a quick
  • LVM-逻辑卷常用命令和示意图

    功能 命令物理卷管理卷组管理逻辑卷管理扫描pvscanvgscanlvscan建立pvcreatevgcreatelvcreate显示pvdisplayvgdisplaylvdisplay删除pvremovevgremovelvremove
  • 卷基于快照进行恢复

    基于P版本 xff0c 对卷基于快照进行恢复的源码分析 1 特性描述 在pike版本中 xff0c openstack官网增加了一个新特性 xff0c Cinder volume revert to snapshot xff0c 该特性支持
  • 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)

    D题 xff1a 马的管辖 二进制枚举方案 判断该方案是否全部能被覆盖 xff0c 将最优方案存下来并进行剪枝 include lt iostream gt include lt cstring gt include lt cstdio g
  • [bash] 查找替换文件

    bash 查找替换文件 写这个脚本也加深了对 bash 数组的理解 bin bash 2015 11 23 echo e 34 说明 n将文件放在 app tmp class目录下 xff0c 保证该目录下没有其他文件 n备份目录在 app
  • Mac M1芯片 安装Homebrew

    MacBook M1芯片安装代码如下 xff0c 打开终端输入 bin bash c 34 curl fsSL https cdn jsdelivr net gh ineo6 homebrew install install sh 34 看
  • 1.学习大纲

    1 朱有鹏嵌入式Linux核心课程 xff1a https item taobao com item htm spm 61 a230r 1 14 1 1fca1869rWwNpJ amp id 61 45153106151 amp ns 6
  • [工具整理] Debain(KDE)下常用工具

    前言 xff1a Debian安装了KDE桌面环境后 xff0c 发现好多有用的功能没有集成 xff0c 需要自己安装 这里主要介绍 xff1a 截图工具 云盘工具以及KDE上的网络管理工具 0x01 截图工具 xff1a 推荐使用 fla
  • 【转】汽车CAN总线

    概述 CAN xff08 Controller Area Network xff09 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 xff0c 它起初用于实现汽车内ECU之间可靠的通信 xff0c 后因其简单实用可靠等
  • 轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端

    概要说明 cas的服务端搭建有两种常用的方式 xff1a 1 基于源码的基础上构建出来的 2 使用WAR overlay的方式来安装 官方推荐使用第二种 xff0c 配置管理方便 xff0c 以后升级也容易 本文就是使用第二种方式 安装步骤
  • vnc连接报错“connection refused (10061)”

    排除 防火墙等等 xff0c 网络设置的错误外 xff0c 登录putty exe 使用以下命令来启动 vnc server 共两行 xff1a service vncserver start vncserver 之后弹出两个warning
  • ST-LINK V2 DIY笔记(一)

    最近一段时间调试STM32板子的时候 xff0c 都是用JLINK 43 杜邦线 xff0c 或者拿官方板子当STLINK用 xff0c 可以用 xff0c 但是体积比较大 xff0c 有时候觉得比较麻烦 正好前一阵手头项目少 xff0c
  • 驱动级键盘模拟(C#)(高手请飘过)

    游戏外挂一般分为三个级别 xff1a 初级是鼠标 键盘模拟 xff0c 中级是Call游戏内部函数 xff0c 读写内存 xff0c 高级是抓包 xff0c 封包的 脱机挂 xff08 完全模拟客户端网络数据 xff0c 不用运行游戏 xf
  • CentOS7安装配置VNCServer

    一 安装图形界面 1 安装X Window图形界面 shell gt yum y groupinstall 34 X Window System 34 shell gt yum y install gnome classic session
  • 【计算机本科补全计划】NFV/SDN初识(为了避免保研复试被电话面试)

    正文之前 所有的通信应用无非就是两部分组成 xff1a 计算和网络 这两者关系密不可分 xff0c 但两者关系严重缺乏对称性 xff0c 网络一直拖累着计算 就好像是发快递 xff0c 你打个包 xff08 计算 xff09 只需要几分钟
  • [!] CDN: trunk - Cannot perform full-text search because Algolia returned an error: 0: Cannot reach

    pod search XXXX 时报错 xff1a CDN trunk Cannot perform full text search because Algolia returned an error 0 Cannot reach any
  • 北大青鸟消防设备说明书_北大青鸟火灾报警控制器JB-TG/T-JBF-11S厂家使用说明书...

    北大青鸟火灾报警控制器JB TG T JBF 11S厂家 使用说明书 一 JB TG T JBF 11S火灾报警控制器主要技术指标 xff1a 型号JB TG T JBF 11S 供电主电AC220V 10 50Hz 巡检周期3秒 备电DC
  • linux测试音量,在Linux中获取C中的主音量

    我正试图在Linux中检索 可能稍后设置 主音量 我正在使用PulseAudio 但理想情况下它也适用于ALSA 我找到了关于如何设置音量的this非常有用的帖子 从中我能够推断出snd mixer selem get playback v
  • Linux之apt命令详解

    一 apt的简介 apt命令可以说是Linux系统下最为重要的命令 xff0c 安装 更新 卸载软件 xff0c 升级系统内核都离不开apt命令 apt的全称是Advanced Packaging Tool是Linux系统下的一款安装包管理
  • cas服务器作用,CAS服务器搭建

    CAS服务器搭建 目的 xff1a 搭建以jdbc方式连接数据库并认证用户信息 服务器源码下载地址 https github com apereo cas releases tag v4 2 1 解压后 xff0c 项目目录如下 xff1a

随机推荐

  • prometheus 最全面的书籍推荐

    https yunlzheng gitbook io prometheus book 转载于 https www cnblogs com kevincaptain p 10709575 html
  • 使用ubuntu搭建时间机器备份服务

    如何在ubuntu下搭建时间备份服务 折腾了很久 终于可以了 请严格按照下面的方式来操作 真正明白问题的 可以按照自己的思路来 我用的是ubnutu 16 04 安装配置netatalk sudo apt get install netat
  • sqlalchemy源代码阅读随笔(1)

    今天看的 xff0c 是url py模块 xff0c 这个在create engine中 xff0c 起到的最用很大 xff0c 其本质 xff0c 就是对访问数据库的url xff0c 进行操作管里 我们可以直接访问这个类 看一个简单的代
  • C++的中英文字符串表示(string,wstring)

    在C 43 43 中字符串类的string的模板原型是basic string template lt class Elem class traits 61 char traits lt Elem gt class Ax 61 alloca
  • iOS开发中UITableView和UITableViewCell的几种样式

    说了很久要写自己的技术博客 xff0c 由于执行力差 xff0c 一直拖到现在才开始写文章 我是一个刚进入软件行业还不到一年的小菜鸟 xff0c 没有什么技术可言 xff0c 然后就在这里斗胆妄自尊大的在博客园上写些东西 xff0c 还希望
  • ubuntu 16.04 + VMware Workstation 16player VCS +Verdi 安装备忘录

    经过了一周左右的煎熬 xff0c 终于将VCS 43 Verdi的验证环境搭建好了 xff0c 只能说很不容易 xff0c 在此作一叙述 xff0c 也是以备自己将来再在相同的地方摔跤 参考 下载软件 xff08 tb买一天会员就行 xff
  • 素数伴侣HJ28

    题目链接 xff1a 素数伴侣 牛客题霸 牛客网 解法 xff1a 最大匹配 因为素数不可能是偶数 xff0c 所以 素数伴侣 只能是一个奇数和一个偶数 由此我们可以创建二分图 xff1a 一个子集全是奇数 xff0c 另一个子集全是偶数
  • A Radiologist's Notes

    肺 lung 肺野 lung fields 后前位胸像上自纵膈肺门向外的透光区域 为了便于定位 xff0c 演第2 4前肋下缘水平画线将肺野分为上中下肺野 xff0c 从肺门到一侧肺野的最外部纵行均分三带 内 xff0c 中 xff0c 外
  • html中内联元素和块级元素的区别

    1 下表列出了内联元素和块级元素的主要区别 html中内联元素和块级元素的区别 块级元素 行内元素 独占一行 默认情况下 xff0c 其宽度自动填满其父元素宽度 相邻的行内元素会排列在同一行里 xff0c 直到一行排不下 xff0c 才会换
  • 基于STM32F429,Cubemx的SDHC卡的基本Fatfs文件移植

    本博文要求各位初步了解Fatfs文件系统 友情提示Fatfs官网 xff1a http elm chan org fsw ff 00index e html 1 开发软件 keil5 Cube5 21 2 实验目的 往SDHC卡上移植Fat
  • 详解equals()方法和hashCode()方法

    前言 Java的基类Object提供了一些方法 xff0c 其中equals 方法用于判断两个对象是否相等 xff0c hashCode 方法用于计算对象的哈希码 equals 和hashCode 都不是final方法 xff0c 都可以被
  • 对本课程的期望以及教学建议

    本学期我们学的c程序更加难了上学期c语言我是压线过的 xff0c 我希望这个学期我能把以前学的知识好好再看看然后总结下来 xff0c 我终于明白了多编程是有多么重要 xff0c 这学期我的电脑一定要派上用场 老师讲课跟以往的不同 xff0c
  • centos 6.3 使用 vnc xrdp 远程登陆 不断弹出对话框“ Authentication is required to set the network proxy used for...

    参考国外解决方案 xff1a 1 cd 进入 etc xdg autostart 2 在该目录下的所有文件的末尾添加 X GNOME Autostart enabled 61 false 3 注意 如果文件中已经的值设置为true xff0
  • 【深度学习】在Caffe中配置神经网络的每一层结构

    前言 层结构 xff0c 是神经网络 Neural Networks 建模和计算的最基本单元 由于神经网络有不同的层结构 xff0c 不同类型的层又有不同的参数 所以 xff0c 对Caffe的每一层配置都不一样 xff0c 而层结构和参数
  • nyoj239 月老的难题 二分图 匈牙利算法

    月老的难题 时间限制 xff1a 1000 ms 内存限制 xff1a 65535 KB 难度 xff1a 4 描述 月老准备给n个女孩与n个男孩牵红线 xff0c 成就一对对美好的姻缘 现在 xff0c 由于一些原因 xff0c 部分男孩
  • iOS开发之键盘类型UIKeyboardType

    UIKeyboardTypeDefault xff1a UIKeyboardTypeASCIICapable xff1a UIKeyboardTypeNumbersAndPunctuation xff1a UIKeyboardTypeURL
  • 转:Maven常用命令

    Maven库 xff1a http repo2 maven org maven2 Maven依赖查询 xff1a http mvnrepository com Maven常用命令 xff1a 1 创建Maven的普通java项目 xff1a
  • 外派公司或者外包公司,真的适合选择吗?

    外派公司是什么 任何公司如果需要用人 xff0c 不论需要什么样的人 xff0c 都可以从外派公司要人 xff0c 用几个月 xff0c 给外派公司几个月的钱 xff0c 管理非常方便灵活 xff0c 不需要考虑长期的员工福利和培养问题 x
  • 对新课程的期望

    我希望在这节课上学到更多技术相关的东西 xff0c 我自己希望通过这学期的学习能过自己写出一个像样点的网站 我计划每周花19小时的时间在这门课上其中包括每周的上课时间两次一共4个小时 xff0c 回到宿舍在每天的6 9点的三个小时进行学习
  • 函数模板和类模板成员函数的定义通常放在头文件中

    今天写程序时 xff0c 将函数模板的声明和定义分开放在头文件和 cpp文件中 xff0c 发生了连接错误 上网查看资料和查看 C 43 43 PRIMER 5 P582发现 xff0c xff1a 函数模板和类模板成员函数的定义通常放在头