C++11特性(16):默认函数控制

在国产麒麟系统上,用Postfix和Dovecot手搓一个内部邮件服务器(附Foxmail配置) 本文详细介绍了在国产麒麟系统上使用Postfix和Dovecot搭建内部邮件服务器的完整流程,包括系统准备、核心配置、安全加固及客户端适配。针对国产环境的特殊需求,提供了依赖包适配、配置差异和Foxmail客户端配置的实用解决方案,助力企业实现高效内部协作。 阅读详情
#include <iostream>
 
//默认函数控制
/*
     构造函数
     拷贝构造函数
     拷贝赋值函数
     移动构造函数
     移动拷贝函数
     析构函数
     ==================================
     operator ,
     operator &
     operator &&
     operator *
     operator ->
     operator ->*
     operator new
     operator delete
*/
 
class TwoCstor
{
public:
     TwoCstor() = default;
 
     //1、禁止使用拷贝构造函数,一旦缺省版本被删除,重载该函数也是非法的
     TwoCstor(const TwoCstor& t) = delete;
 
      //此处未使用"=default"
     TwoCstor& operator=(const TwoCstor& t);
};
//在类外使用"=default"来指明使用缺省版本
TwoCstor& TwoCstor::operator=(const TwoCstor& t) = default;
 
class ConvertTo
{
public:
     ConvertTo(int){}
     //2、删除参数为char的版本
     ConvertTo(char) = delete;
};
 
class ConvType
{
public:
     ConvType(int){}
     explicit ConvType(char) = delete;
};
//3、显式删除隐式数据类型转换
void func1(ConvertTo c){}
void func2(ConvType c){}

//4、显式删除普通的函数
void func3(int){}
void func3(char) = delete;

//5、显式删除在堆上分配class对象
class NoHeapAlloc
{
public:
     void* operator new(std::size_t) = delete;
};
 
int main()
{
     //如果TwoCstor() = default;改成TwoCstor(){},则is_trivial和is_pod则为0
     std::cout << std::is_trivial<TwoCstor>::value << std::endl;     //1
     std::cout << std::is_standard_layout<TwoCstor>::value << std::endl;     //1
     std::cout << std::is_pod<TwoCstor>::value << std::endl;     //1

     //1、
     TwoCstor t1;      //ok
     TwoCstor t2(t1);     //error,禁止使用拷贝构造函数

     //2、
     ConvertTo c1(1);     //ok
     ConvertTo c2('a');     //error,参数为char类型的构造函数被删除
     func1(1);     //ok
     func1('a');     //error,无法隐式类型转换
 
     //3、不建议explicit关键字与显式删除合用,避免两者同时使用
     ConvType cc1(1);
     ConvType cc2('a');     //error,参数为char类型的版本被删除,无法构造
     func2(1);
     func2('a');     //可以隐式转换为func(ConvType(97));

     //4、
     func3(1);     //ok
     func3('a');     //error,一般函数参数为char类型的被删除

     //5、
     NoHeapAlloc nha; //ok
     NoHeapAlloc *pNha = new NoHeapAlloc();     //error,禁止使用操作符new
    
     return 0;
}

====================打个广告,欢迎关注====================

QQ:412425870
csdn博客:
http://blog.youkuaiyun.com/caychen
码云:
https://gitee.com/caychen/
github:
https://github.com/caychen

点击群号或者扫描二维码即可加入QQ群:

328243383(1群)



点击群号或者扫描二维码即可加入QQ群:

180479701(2群)



【Python】秋招机考 —— 2025/9/17 华为 AI 方向 秋招机考,华为 AI,使用 Python 完成编程。 阅读详情

相关推荐

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2991

C++11 之默认函数控制 =default 与 =delete

默认构造函数复制构造函数移动构造函数赋值运算符默认函数控制的主要作用是规定编译器如何生成这四个函数的默认实现。通过合理掌握默认实现,可以有效地保证程序的健壮性和可维护性。= default:表示将该函数的默认实现指定为编译器自动生成的默认实现。= delete:表示要求编译器不生成该函数的默认实现,通常用于避免不正确的行为或者限制特定操作的使用。C++11 中引入了默认函数控制,可以通过控制编译器生成的默认函数来控制程序显式创建和复制行为。默认函数控制包括= default和= delete。

weixin_45782027的博客 1059

Cadence IC618与Spectre231安装:环境变量与License配置详解

在Linux系统中部署Virtuoso等EDA工具时,环境变量与License管理是决定工具能否顺利启动的核心环节。环境变量决定了系统如何找到工具二进制文件以及工具如何定位自身资源,而License则通过FlexLM授权机制控制工具的使用权限。理解PATH、CDS_ROOT、CDS_LIC_FILE等关键变量的作用,掌握lmgrd服务与lmstat验证方法,能显著减少安装后启动失败的概率。无论是学生初装Cadence IC618与Spectre231,还是实验室工作站需要搭建可用的模拟设计环境,理顺环境变量

weixin_29192365的博客 370

c++ 类的默认八种函数

类的默认八种函数类的默认八种函数参考 类的默认八种函数 参考 1、https://www.cnblogs.com/lsgxeva/p/7668200.html

JMW1407的博客 1万+

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6217

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

weixin_45735391的博客 8万+

C++11默认成员函数控制

介绍默认成员函数控制的两种方式=default和=delete,分别为使用和删除

weixin_62551043的博客 459

OpenCloudOS9操作系统搭建Confluence8.2.1+Jira企业级WIKI

Atlassian Confluence是一个专业的企业知识管理与协同软件,可用于构建企业wiki

背锅神童的博客 1023

C++11--默认成员函数控制 && 模板的可变参数

本文详细介绍了C++11中关于默认成员函数控制和模板的可变参数。默认成员函数控制中先复习了一下几个默认成员函数以及它们的作用,之后介绍如何使用default和delete控制类默认成员函数的行为:生成还是删除。模板的可变参数中,先来复习一下C语言中如何实现的可变参数,然后再介绍模板的可变参数。此外还详细介绍了模板的可变参数的应用——emplace_back:介绍了其在哪些场景下才能提高效率、如何实现。最后介绍了模板的可变参数和统一初始化列表同时应用的一个易错点。希望对你学习C++11语法有所帮助……

2201_75479723的博客 1552

5、模型预测控制与分布式MPC控制结构解析

本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。

tea88的博客 170

EtherCAT从站EEPROM组成信息详解(2):字8-15产品标识区

以实际的从站EEPROM数据为例,参照EtherCAT的SII规范,详细分析了从站EEPROM字8-字15的产品标识区内容组成。

kevin1499的博客 719

C++11中类的默认函数

C++11中类的默认函数

m0_71009069的博客 775

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

树莓派2移植linux,移植sdk到树莓派大量报错

之前头文件重定义问题没解决,想着先把已经做好的小demo(在ubuntu 16.04+qt5环境下成功编译运行)移植到树莓派先,没想到一模一样的工程在树莓派+ubuntu mate16.04+qt5环境下报出50多个错误,好像是什么构造函数被解析了,头都大了。 报错信息:14:04:13: 为项目face_check执行步骤 ...14:04:13: 配置没有改变, 跳过 qmake 步骤。14:...

weixin_36473056的博客 553

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C++11新特性总结

C++11引入了许多新特性,如auto关键字实现自动类型推导,nullptr代替NULL,智能指针如unique_ptr和shared_ptr更安全地管理内存,lambda表达式简化函数对象的书写,委托构造函数和默认删除函数增强了类的构造与析构控制,移动语义提高了效率,变长参数模板variadic templates支持可变数量的参数类型。这些特性大大提高了C++的易用性和性能,并使得代码更简洁、安全、高效。

白云之道 1328

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【C++】C++11新增特性

相比于C++98,C++11带来了大量的新特性和改进,其中包含了约140个新特性,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率。是个容器,但是没有新开空间,里面有两个指针,一个指向第一个元素(常量数组的开始),一个指向最后一个元素的后一个位置(常量数组的结束),所以是8/16字节,因为是两个指针(first, last)在C++中,类的右值通常是一个临时对象,如果在表达式结束时没有被绑定到引用,就会被废弃。

2302_76142697的博客 1290

C++学习:六个月从基础到就业——C++11/14:其他语言特性

要使自定义类型支持范围for循环,需要提供begin()和end()private:int start;int end;// 实现迭代器接口...public:// 使用// 输出: 1 2 3 4 5// 距离字面量// 转换为米// 使用// 创建Distance对象// 字符串字面量// std::string,不是C风格字符串// 时间字面量// 复数字面量// 复数(3, 4)nullptr:提供类型安全的空指针字面量constexpr。

qq_53773901的博客 1199

C++11 多线程(std::thread)详解

本文介绍了C++11标准库中的std::thread多线程编程基础。

jcShan709的博客 15万+

C++11新特性

c++11新增了几种数据类型:、、等原始字符串简单来说,“原生的、不加处理的”,字符表示的就是自己(所见即所得),引号、斜杠无需 “\” 转义,比如常用的目录表示,引入原始字符串后,非常方便。格式如下: 类型别名声明 C++11标准规定了一种新的方法,使用别名声明(alias declaration)来定义类型的别名: 这种方法用关键字using作为别名声明开始,后面紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名。 类型别名和类型的名字等价,只要是类型的名字能出现的地方,就能使用类型别名。

czw 1376

C++类的默认函数 C++ Class Default Functions

在C++中,一个类有八个默认函数: 默认构造函数; 默认拷贝构造函数; 默认析构函数; 默认重载赋值运算符函数; 默认重载取址运算符函数; 默认重载取址运算符const函数; 默认移动构造函数(C++11); 默认重载移动赋值操作符函数(C++11)。   只是声明一个空类,不做任何事情的话,编译器会自动为你生成一个默认构造函数、一个默认拷贝构造函数、一个默认重载赋值操作符函数...

Mike.Song的专栏 1151

深入理解C++11:C++11新特性解析与应用

《深入理解C++11:C++11新特性解析与应用》基本信息作者: Michael Wong IBM XL编译器中国开发团队 丛书名: 原创精品系列出版社:机械工业出版社ISBN:9787111426608上架时间:2013-5-31出版日期:2013 年6月开本:16开页码:1版次:1-1所属分类:计算机 &gt; 软件与程序设计 &gt; C++ &gt; C++ 更多关于 》》》《深入理...

weixin_34008805的博客 1311

【C++】C++11 -- 新功能

C++11可以让我们更好的控制要使用的默认成员函数,假设某些情况我们需要使用某个默认成员函数,但是因为某些原因导致无法生成这个默认成员函数,就可以使用default这个关键字强制其生成。可以看到Person类默认生成了移动构造函数,其对自己的自定义成员_name调用了自定义成员的移动构造函数_,我们还可以改一下代码看一下默认移动赋值的效果。虽然Person类当中没有实现移动构造和移动赋值,但是拷贝构造,拷贝赋值,析构函数都实现了,因此Person类不会生成默认的移动构造和移动赋值。

m0_69442905的博客 1984

C++11 标准新特性:委派构造函数

https://www.ibm.com/developerworks/cn/rational/1508_chenjing_c11/index.html?mhq=C%2B%2B11%20%E6%A0%87%E5%87%86%E6%96%B0%E7%89%B9%E6%80%A7 C++11 标准新特性:委派构造函数 陈 晶 2015 年 8 月 11 日发布 WeiboGoogle+用电子邮...

jfkidear的专栏 488

C++11 及后续版本特性对比矩阵

以下表格重新组织了C++11至C++23的主要新增(用✨表示)和修改(用🔄表示)特性。

腾TO的技术博客 1027

C++ 11 新特性

当final关键字用于修饰虚函数时,声明该类已经是整个继承体系中最后一个能重写该虚函数的派生类了,后续继承该类的派生类中不允许在重写该虚函数了。

weixin_44248258的博客 969

C++篇(16)C++11(下)

近代C++之C++11

seanmooPercy的博客 1058

C++11新特性总结(相比C++98)

本文列举一下C++11相比C++98的一些重要变化,做一下知识总结和沉淀。1. C++11 新增_Pragma("once")来保证头文件只会被include一次,用以代...

jameswhale的博客 1226
上一篇: C++ STL(18):排序算法
下一篇: C++11特性(17):lambda函数
caychen
博客等级 码龄9年 110粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值