C++中default标识的构造函数的说明如下:

一般地,default标识的构造函数放在.h文件中,cpp文件不需要再写构造函数定义了,否则会编译会报错,提示:函数已有主体。而没有default标识的默认构造函数,就需要实现默认构造函数的定义,即使这个默认构造函数什么都不干,也要实现,否则在定义该类的无参数对象时,会报找不到默认构造函数而报链接错误。如下:


// .h文件
class CTopWndInfo
{
public:CTopWndInfo() = default;~CTopWndInfo();
};// .cpp文件没有实现CTopWndInfo()函数
CTopWndInfo::~CTopWndInfo()
{
}

main中定义如下对象不会报错:

int main(int argc, char *argv[])
{CTopWndInfo  s;return 0;
}

而如果按下面那样不标识default,也不实现无参构造函数,则在上述main代码中就会报找不到CTopWndInfo默认构造函数的链接错误。


// .h文件
class CTopWndInfo
{
public:CTopWndInfo();~CTopWndInfo();
};// .cpp文件没有实现CTopWndInfo()函数
CTopWndInfo::~CTopWndInfo()
{
}

加default是告知编译器,让编译为我们生成一个平凡构造函数,平凡构造函数不同于非平凡函数,平凡函数在优化等方面,编译器为了我们做了很多工作,而非平凡函数编译器则不会。上述没有加default的构造函数就是非平凡构造函数。

C++中default标识的构造函数的说明相关推荐

  1. 【C++】C/C++ 中default/delete特性

    C++类的特殊成员函数及default/delete特性 本文内容侧重个人理解,深入理解其原理推荐https://www.geeksforgeeks.org 目录 目录 C++类的特殊成员函数及def ...

  2. java 调用其他构造函数_我如何在Java中调用另一个构造函数?

    是的,这是可能的: public class Foo { private int x; public Foo() { this(1); } public Foo(int x) { this.x = x ...

  3. 高精地图中导航标识识别

    高精地图中导航标识识别 思路 主要介绍高精地图导航标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求. 高精地图介绍 当你开车导航的时候,导航地图会向我们推荐一条或几条路线,有些地图甚 ...

  4. SQL Server中的标识列

    一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列. 该种列具有以下三种特点: 1.列的数据类型为不带小数的数值类型 2.在进行插入(Insert)操作时,该列的值 ...

  5. 关于SQL Server数据库中的标识列

    2019独角兽企业重金招聘Python工程师标准>>> 一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列. 该种列具有以下三种特点: 1.列的数 ...

  6. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

    {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句  B: ...

  7. java抽象类的构造函数如何定义_我们可以在Java的抽象类中定义参数化的构造函数吗?...

    是的,我们可以在抽象类中定义参数化的构造函数. 在抽象类中定义参数化构造函数的条件我们需要确保扩展抽象类的类具有构造函数,并且可以调用超类参数化构造函数. 我们可以通过使用super()调用在子类中调 ...

  8. C++学习笔记-----在一个构造函数中调用另一个构造函数

    在构造函数中调用另一个构造函数如果一不注意就会有无限递归的危险,而且构造函数的参数的不同也决定了调用的不同,所以特意总结了一下哪些形式的调用时允许的: 首先假设构造函数调用时参数都是外部的变量,而不是 ...

  9. java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

    Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...

最新文章

  1. 果园机器人的课文_小学三年级下《果园机器人》课文
  2. 第10周项目实践 线索二叉树的建立及遍历
  3. Linux学习笔记6
  4. 批处理 操作mysql_用批处理对MySQL进行数据操作
  5. inc指令是什么意思_西门子PLC一些指令
  6. NIPS 2018 | 中科院自动化所两篇入选论文:高清真实图像生成领域及GAN研究在人脸识别领域的进展...
  7. (vue基础试炼_04)使用组件改造TodoList
  8. java解析xml中文字符乱码_Eclipse读取xml中文乱码问题解决
  9. 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组
  10. 步骤一:入门linux基础/01Linux简介和安装/002Linux发行版的介绍
  11. linux ntp server配置文件,Linux下配置ntp server
  12. 杭电第七次作业c语言短学期,杭电短学期:算法与编程.doc
  13. Android ELF文件编译之符号隐藏
  14. c语言数组输入某年某月某日,编程:输入某年某月某日,判断这一天是这一年的第几天...
  15. java 页眉页脚_Java 修改Word页眉页脚
  16. OpenCV-Python官方教程-20-分水岭算法图像分割
  17. scala 相关基础知识
  18. Ubuntu强制修改root密码
  19. 触发器(Trigger)
  20. 探针台的配件也要第三方计量校准吗

热门文章

  1. 电子设计竞赛电源题(4)-Buck与Boost电路
  2. 国产编程语言又造假,丢不起这人!
  3. Ultra96_v2实现交通标示识别
  4. MATLAB生成FPGA COE文件之XILINX FPGA滤波器系数
  5. python求积分基于numpy_NumPy 实现梯形法积分
  6. java 多线程池_Java项目中,线程池中线程数量太大会有什么影响?
  7. bch怎么挖_BCH是什么?
  8. php fsockopen socket,PHP利用socket(fsockopen)的简单示例
  9. matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
  10. P4390 [BOI2007]Mokia 摩基亚 (CDQ解决三维偏序问题)