C++ 修饰符

embedded/2024/10/21 23:01:54/

1、explicit

关键字,用于修饰构造函数,防止构造函数隐式转换,用于增强代码明确性,提高代码可读性。
缺点:由于explicit关键字阻止了构造函数隐式转换,所以需要额外代码进行类型转换。

class MyClass
{
public:MyClass(std::string name) { name_ = name;}
private:std::string name_;
};class MyClass1
{
public:explicit MyClass1(std::string name) { name_ = name;}
private:std::string name_;
};void Fun(MyClass c)
{//...
}void Fun1(MyClass c)
{//...
}int main(int argc, char *argv[])
{std::string name = "ZhangSan";Fun(name); //正确Fun1(name); //编译错误Fun1(MyClass1(name)); //正确MyClass1 obj0("ZhangSan"); //直接初始化,正确MyClass1 obj1{"ZhangSan"}; //列表初始化,正确MyClass1 obj2 = "ZhangSan"; //复制初始化,编译错误MyClass  obj3 = "ZhangSan"; //正确return 0;
}

http://www.ppmy.cn/embedded/129386.html

相关文章

C07.L10.STL之队列

大家好,我是AC使者。 一、队列的介绍 队列是一种操作(或者说运算)受到限制的特殊线性表。其插入操作限定在表的一端进行,称为入队;其删除操作则限定在表的另一端进行,称为出队。插入一端称为队尾&#xf…

再Android10上实现检测AHD摄像头是否接入

项目有个需要,需要知道tp9951是否接入AHD摄像头 1,驱动层可以通过读取寄存器的值来检测是否接入AHD摄像头 tp9951_write_reg(0x40, 0x00); //select decoder page tp9951_write_reg(0x41, ch); val tp9951_read_reg(TP_INPUT_STATUS_REG);…

React开发一个WebSocket

export default class SocketService {static instance null;static get Instance() {if (!this.instance) {this.instance new SocketService();}return this.instance;}// 和服务端连接的socket对象ws null;// 存储回调函数callBackMapping {};// 标识是否连接成功connec…

ITSS服务项目经理的的认证价值

ITSS 个人认证足以印证持证者拥有 IT 服务从业的基础能力。获取 ITSS 认证对于个人及企业于 IT 服务领域的发展具备关键意义。以下为 ITSS 认证的作用所体现的若干方面: (1)能力认证:其乃是一套客观且量化的准则,用以…

下载Edge/Chrome浏览器主题的背景图片

当我们为Edge安装了心仪的主题后,希望把对应的背景图片下载保存要怎么做呢,以下图的“湖心小屋”主题为例。如下图,我们已经在应用商店中按照了该主题。 当打开新标签页后,可以欣赏这个主题内置的背景图片。 如果想要下载这个背景…

Jmeter学习深入

Jmeter学习深入 一、jmeter接口关联 提取器: 。 CS5:给网页使用 。JSON:给JSON数据使用 。 边界:给字符串使用 。正则:更加高级的字符使用 。XPath:给网页使用 必须掌握: JSON边界 JSON 正则 1.边界提取器 给定两边取中间 2.正则提取器 正则:强大并且复杂 通过指定正则表…

10 django管理系统 - 管理员管理 - 新建管理员(通过模态框和ajax实现)

在文章“04 django管理系统 - 部门管理 - 新增部门”中&#xff0c;我们通过传统的新增页面来实现部门的添加。 在本文中&#xff0c;我们通过模态框和ajax来实现管理员的新增。 首先在admin_list.html中新建入口&#xff0c;使用按钮 <div class"panel-heading&quo…

全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?

1. Maven 1.1 应用场景&#xff1a; 本地仓库&#xff1a; 我们使用的jar依赖于maven的本地仓库 自动部署&#xff1a; 本地仓库推送到远程仓库&#xff0c; 远程库通知 Jenkins工具&#xff0c;Jenkins 调用Maven构建war包&#xff0c;Jenkins 再调用准备好的脚本程序&…