cpp笔记-24-05-10

1、public —— 外部也能访问

2、private —— 只能内部(友元也可以)

3、explicit —— 只可用于声明単参构造函数。声明类的构造函数是显示调用,不是隐式。阻止调用构造函数时隐式转换(赋值初始化)

4、默认构造函数 —— 不提供参数调用的构造函数。构造函数一般不定义成虚函数。

默认构造函数时调用时不提供参数的构造函数(发生在调用时),而并不一定是不接受任何参数的构造函数

class Human {
private:string name;int age;
public:Human(string humansName = "Adam", int humanAge = 18) {name = humansName;age = humanAge;}
};Human adam;

可以使用关键字constexpr将构造函数定义为常量表达式。在有助于提高性能。 

constexpr Human() {}

5、抽象类必须有一个纯虚函数。抽象类中的纯虚函数必须能被覆盖(也就是不能和final一起用)

6、为了防止内存泄露,一般将析构函数定义为虚函数。

~ 腭化符号

析构函数不能重载,,每个类只有一个析构函数。

7、要避免拷贝构造函数无限制的递归 —— 栈溢出

8、带有指针的类,建议都要自己写包含深复制的复制构造函数。输如:const 的引用。

如果不是引用,就会无限递归构造,见第七条。

肩并肩的还要再定义一个“复制赋值运算符 opertor=”,编译器提供的也是浅复制。

9、移动构造函数,改善性能

&&

std::move()

肩并肩的还要再定义一个移动赋值运算符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二 1.概述 这篇文章在触摸屏上绘制一个开关,通过点击开关实现控制灯的开关功能。 2.硬件 硬件连接参考第一篇文章介绍 Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一 3.实现…

在线caj转换成pdf免费吗?caj变成pdf很容易!点进来!

在数字化阅读日益盛行的今天,各种电子文献格式层出不穷,其中CAJ和PDF无疑是两种最为常见的格式。CAJ是中国知网推出的一种专用全文阅读格式,而PDF则因其跨平台、不易被修改的特性,受到了广大读者的青睐。因此,将CAJ格式…

Auto.js如何打包成APK文件

Auto.js 是一个基于 JavaScript 的自动化脚本工具,它可以被打包成 APK 文件,以便在 Android 设备上安装和运行。以下是根据您提供的搜索结果中关于如何将 Auto.js 脚本打包成 APK 文件的步骤: 1. **安装 Auto.js App**:首先&…

【C++】 类的新成员:static成员和类的好朋友:友元

欢迎来到CILMY23的博客 🏆本篇主题为: 类的新成员:static成员和类的好朋友:友元 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Li…

网络编程套接字(一) 【简单的Udp网络程序】

网络编程套接字<一> 理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序socket编程接口sockaddr结构简单的UDP网络程序服务端创建套接字服务端绑定运行服务器客户端创建套接字关于客户端的绑定问题启动客户端启动客户端本地测试INADDR_ANY 理解源端口号…

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…

Linux进程控制——Linux进程等待

前言&#xff1a;接着前面进程终止&#xff0c;话不多说我们进入Linux进程等待的学习&#xff0c;如果你还不了解进程终止建议先了解&#xff1a; Linux进程终止 本篇主要内容&#xff1a; 什么是进程等待 为什么要进行进程等待 如何进程等待 进程等待 1. 进程等待的概念2. 进…

软件杯 深度学习的水果识别 opencv python

文章目录 0 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习…

【数据结构】平衡二叉树(插入、查找、删除)解析+完整代码

3.2 平衡二叉树 3.2.1 定义 平衡二叉树&#xff0c;简称平衡树&#xff08;AVL树&#xff09; 树上任一结点的左右子树高度差不超过1。 结点的平衡因子左子树高-右子树高 3.2.2 插入操作 插入结点后&#xff0c;可能造成不平衡 要调整最小不平衡子树&#xff0c;使其恢复平衡。…

武装部三维电子沙盘-行动路径规划分析平台

武装部三维电子沙盘-行动路径规划分析平台是一款集成了大数据、云计算、虚拟现实、物联网、AI等先进技术的综合性系统。它真实模拟地形、地貌、地物&#xff0c;结合地理空间专业数据、执勤兵力部署、基干民兵信息、普通民兵信息、潜力资源信息、军队相关专业数据、兵要地志数据…

【回溯 代数系统】679. 24 点游戏

本文涉及知识点 回溯 代数系统 LeetCode679. 24 点游戏 给定一个长度为4的整数数组 cards 。你有 4 张卡片&#xff0c;每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式…

SQLserver - 笔记

1 SQLserver - 用户管理 4、SQL SERVER数据库用户管理_哔哩哔哩_bilibili 创建用户 - user 2.选择用户&#xff0c;修改属性

Qt---绘图和绘图设备

一、QPainter绘图 绘图事件 void paintEvent() 声明一个画家对象&#xff0c;OPainter painter(this) this指定绘图设备 画线、画圆、画矩形、画文字 设置画笔QPen 设置画笔宽度、风格 设置画刷QBrush 设置画刷风格 代码示例&#xff1a; #includ…

LeetCode---循环队列

循环队列就是只有固定的内存&#xff0c;存数据&#xff0c;出数据&#xff0c;但是也和队列一样&#xff0c;先进先出。如下图所示&#xff0c;这是他的样子 在head出&#xff0c;tail进&#xff0c;但是这个如果用数组解决的话&#xff0c;就有问题&#xff0c;力扣给我们的接…

libx265的交叉编译

目标平台&#xff1a;aarch64 编译器版本&#xff1a;aarch64-linux-gnu- 操作系统&#xff1a;麒麟v10 CPU&#xff1a;rk3588 为了方便编译aarch64版本&#xff0c;建议x265版本选择3.5版本&#xff0c;此版本build中包含了aarch64配置选项&#xff0c;比较码放。下载地…

Building3D An Urban-Scale Dataset and Benchmarks 论文阅读

文章主页 Building3D 任务 提出了一个城市规模的数据集&#xff0c;由超过 16 万座建筑物以及相应的点云、网格和线框模型组成&#xff0c;覆盖爱沙尼亚的 16 个城市&#xff0c;面积约 998 平方公里。 动机 现有的3D建模数据集主要集中在家具或汽车等常见物体上。缺乏建…

CAPL入门之使用CAPL记录测试Logging

0 前言 以往测试的log都是直接从trace导出&#xff0c;但是最近发现trace中能导出的数据是有限的&#xff0c;如果测试的时间过长&#xff0c;新的数据就会把之前的数据全部覆盖&#xff0c;并且对于长时间的测试&#xff0c;直接导出trace的内容也会造成查找效率低下的问题。因…

centos7下使用docker安装fastdfs服务

先查看容器是否已经存在 docker ps -a 删除掉之前的tracker及storage服务 docker rm tracker docker rm storage 1、没有镜像先下载镜像 docker pull morunchang/fastdfs 2、运行服务 a、不指定物理服务器路径 docker run -d --name tracker --nethost morunchang/fastdfs sh…

Java面试八股之String s = “String“;和String s = new String(“String“);有什么区别

Java中String s "String";和String s new String("String");有什么区别 字符串字面量&#xff08;"String"&#xff09;&#xff1a; 常量池&#xff1a;使用字面量方式创建字符串时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;会在运…

什么是Java中的设计模式?请列举几种常见的设计模式

一、引言 在软件开发中&#xff0c;设计模式是解决特定设计问题的最佳实践或通用解决方案。Java作为一种广泛使用的编程语言&#xff0c;其设计模式在软件设计和架构中起着至关重要的作用。设计模式不仅提高了代码的可读性和可维护性&#xff0c;还使得代码更加灵活和可扩展。…