=default和=delete之二

2024-06-16 23:48
文章标签 之二 default delete

本文主要是介绍=default和=delete之二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c++ primer 5th上在讲到=default和=delete时,都是说的函数声明,不便于理解。可以按下面理解,认为编译器在=default和=delete出现的地方自动换为函数定义。

 

=default:

1,只能对编译器可以合成的默认构造函数或拷贝控制成员使用=default。

2,在声明时加上关键字=default。但是在编译代码时,显式让编译器在default关键字出现的地方生成合成的函数定义

     因此不能再自己定义,否则会出现重复定义错误。

     (1) 若在类内声明时指定default,则是内联的; 若在外部声明时指定,则是非内联的。

     因此c++ primer 5th P237“=default 既可以和声明一起出现在类的内部,也可以作为定义出现在类的外部”在理解上需要注意,在外部类定义外部是编译器把=default关键字换为函数的定义。

1, 只在类定义时声明为default. 编译器会在此进行定义函数。此时是内联的.
class base {
public:base() = default;
private:int a;
};2, 在类定义时声明非default,在类定义外声明为default,编译器会在此进行定义函数. 此时不是内联.
class base {
public:base(); //首次声明
private:int a;
};
// ok. 编译器会在此进行定义

这篇关于=default和=delete之二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067895

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

Qt: 详细理解delete与deleteLater (避免访问悬空指针导致程序异常终止)

前言 珍爱生命,远离悬空指针。 正文 delete 立即删除:调用 delete 后,对象会立即被销毁,其内存会立即被释放。调用顺序:对象的析构函数会被立即调用,销毁该对象及其子对象。无事件处理:如果在对象销毁过程中还涉及到信号和槽、事件处理等,直接 delete 可能会导致问题,尤其是在对象正在处理事件时。适用场景:适用于在确定对象已经不再被使用的情况下,并且不涉及异步处理或事件循环中的

Pr 入门系列之二:导入与管理素材(下)

◆  ◆  ◆ 管理素材 导入素材后,项目面板中每一个媒体都只是原始素材的“链接”。 所以,视频编辑过程中一般情况下都不会破坏原始素材。 1、在不同视图模式下组织素材 项目面板提供了三大视图 View供选用:列表视图、图标视图以及自由格式视图。 A. 锁定 B. 列表视图 C. 图标视图 D. 自由格式视图 E. 缩放滑块 F. 排序图标 G. 自动匹配序列 H. 查找 I. 新建素材箱 J.

MongoDB学习—(1)安装时出现The default storage engine 'wiredTiger' is not available问题解决

MongoDB是NoSql类型的一种基于分布式文件存储的数据库,其存储方式与关系型数据库不同。其详细解释可见于[百科]。安装文件可从官网下载,官网:http://mongodb.org 我将下载的解压文件放到D盘的mongodb文件夹下,

使用YOLOv10训练自定义数据集之二(数据集准备)

0x00 前言 经过上一篇环境部署的介绍【传送门】,我们已经得到了一个基本可用的YOLOv10的运行环境,还需要我们再准备一些数据,用于模型训练。 0x01 准备数据集 1. 图像标注工具 数据集是训练模型基础素材。 对于小白来说,一般推荐从一些开放网站中下载直接使用,官方推荐了一个名为Roboflow的数据集网站。Roboflow是一个免费开源数据集管理平台,它不仅提供免费的数据集,还

UICollectionView 的研究之二 :自定义 UICollectionViewFlowLayout

UICollectionView 实现各式复杂布局核心在于 UICollectionViewLayout,需要我们去自定义实现。 通过各种layout 的自定义实现,以及它们之间的切换。可以实现一些酷炫的布局,例如 (图片选自:http://www.cnblogs.com/markstray/p/5822262.html) Cover Flow 布局 堆叠布局 圆形布局

Pr 入门系列之二:导入与管理素材(上)

导入和管理素材是视频编辑流程中的关键步骤。正确导入素材确保项目中的媒体文件兼容性和稳定性,而有效管理素材则提高编辑效率,帮助你有序组织和快速访问所需资源,避免混乱和错误。 ◆  ◆  ◆ 新建项目 项目文件(.prproj)保存着视频工作流程中的所有信息。 Pr菜单:文件/新建/项目 Project 快捷键:Ctrl + Alt + N 导入页面 如上图所示,可以不选择任何素材,直接点击“创建

[LeetCode] 583. Delete Operation for Two Strings

题:https://leetcode.com/problems/delete-operation-for-two-strings/description/ 题目 Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in

[LeetCode] 740. Delete and Earn

题:https://leetcode.com/problems/delete-and-earn/ 题目大意 对于数组nums ,选取一个数 num,那么nums数组中 num - 1 与 num + 1 都会被删除,重复多次直到 nums 数组为空。求选取 num 的最大和。 解题思路 方法一 treeMap 将nums 中所有元素进行reduce操作,得到 TreeMap,其中 key

Add, Search, Delete Node in BST.

Add Node, Search Node, Delete Node, 的基本操作,被问了两次了。写出来。 http://quiz.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/   // add the node;public TreeNode addNode(TreeNode root, int val)