设为首页 加入收藏

TOP

C++11 标准新特性:Defaulted 和 Deleted 函数
2017-10-12 17:51:20 】 浏览:1862
Tags:标准 特性 Defaulted Deleted 函数

本文参考:http://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/#ibm-pcon

C++11 标准的两个新特性:defaulted 和 deleted 函数。对于 defaulted 函数,编译器会为其自动生成默认的函数定义体,从而获得更高的代码执行效率,也可免除程序员手动定义该函数的工作量。对于 deleted 函数, 编译器会对其禁用,从而避免某些非法的函数调用或者类型转换,从而提高代码的安全性

C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象。如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。

 

defaulted函数的提出

1. 减轻程序员的编程工作量;2. 获得编译器自动生成的默认特殊成员函数的高的代码执行效率。

程序员只需在函数声明后加上“=default;”,就可将该函数声明为 defaulted 函数,编译器将为显式声明的defaulted 函数自动生成函数体。

 

deleted函数的提出

为了能够让程序员显式的禁用某个函数,C++11 标准引入了一个新特性:deleted 函数。程序员只需在函数声明后加上“=delete;”,就可将该函数禁用。

deleted 函数特性还可用于禁用类的某些转换构造函数,从而避免不期望的类型转换。

deleted 函数特性还可以用来禁用某些用户自定义的类的 new 操作符,从而避免在自由存储区创建类的对象。

 


注意:

只有4类特殊成员函数才能被声明为defaulted函数,而deleted函数特性并无此限制

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇基于Qt的开源音乐播放器(CZPlaye.. 下一篇Qt 使用QMovie加载gif图片实现动..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目