当前位置: 首页 > news >正文

今日重点新闻快速排名seo软件

今日重点新闻,快速排名seo软件,平面设计师如何做网站,手机视频网站开发教程系列文章目录 C11新特性使用详解-持续更新 文章目录 系列文章目录一、default关键字1. 为什么要引入default关键字2. 注意事项3. 使用default关键字有什么好处4.实例代码 二、delete关键字1. 为什么要引入delete关键字2. 注意事项3. 使用场景3.1删除默认构造函数3.2 删除拷贝构…

系列文章目录

C++11新特性使用详解-持续更新


文章目录

    • 系列文章目录
    • 一、=default关键字
      • 1. 为什么要引入=default关键字
      • 2. 注意事项
      • 3. 使用=default关键字有什么好处
      • 4.实例代码
    • 二、=delete关键字
      • 1. 为什么要引入=delete关键字
      • 2. 注意事项
      • 3. 使用场景
        • 3.1删除默认构造函数
        • 3.2 删除拷贝构造函数和拷贝赋值运算符
        • 3.3 删除重载操作符
        • 3.4 为什么不直接删除函数用


一、=default关键字

=default关键字是C++11标准中引入的一个新特性,它用于告诉编译器生成默认的函数实现。

1. 为什么要引入=default关键字

在C++11之前,我们通常需要手动实现所有的函数,包括构造函数、拷贝构造函数、拷贝赋值运算符等等。但是有时候我们并不想为每个函数都编写实现,这时候就可以使用=default关键字来生成默认的实现。

2. 注意事项

  • 只能对具有合成版本的成员函数使用=default(即默认构造函数或拷贝控制成员)
  • 如果我们已经为某个函数提供了实现,那么就不能再使用=default关键字了。这样做会导致编译错误。
  • 类内用=default修饰成员的声明时,合成的函数将隐式地声明为内联,如果不希望隐式内联,应该只对成员的类外定义使用=default
  • 当构造函数需要申请内存资源时,我们通常需要手动编写构造函数的定义,并在其中使用适当的内存分配函数(如new)来申请内存。这样可以确保在对象创建时分配所需的内存,并在析构函数中释放这些内存。

3. 使用=default关键字有什么好处

它可以帮助我们减少代码量,提高代码的可读性和可维护性。
但是需要注意的是,只有在必要的情况下才应该使用=default关键字,否则可能会影响程序的性能和可读性。

4.实例代码

class MyClass
{
public:MyClass() = default;   //默认构造函数MyClass(const MyClass&) = default;    //默认构拷贝造函数MyClass& operator = (const MyClass&) = default;   //默认拷贝赋值运算符MyClass(int i) { a = i; }; private:int a;std::string s;char* p;
};int main()
{//defaultMyClass a1;MyClass a2 = a1;MyClass a3;a3 = a1;std::cout << "Hello World!\n";
}

二、=delete关键字

1. 为什么要引入=delete关键字

虽然大多数类应该定义拷贝构造函数和拷贝赋值运算符,无论是隐式的还是显式的。但某些类这些操作没有意义,这种情况下必须采用某种机制阻止拷贝或赋值。
=delete是C++11引入的一个新的关键字,它用于显式地删除一个已经定义的函数或操作符来阻止拷贝。

这个关键字告诉编译器,我们不希望这个函数或操作符被调用,即使在代码中出现了这样的调用也会导致编译错误。

比如iostream类阻止了拷贝,以避免多个对象写入或读取相同的IO缓存。
还有unique_ptrye阻止了拷贝,防止多个指针指向同一对象(破坏独占性)。

2. 注意事项

不能删除析构函数,如果析构函数被删除,就无法销毁此类型的临时对象。

某一个成员的析构函数是删除的,则该成员无法销毁,因而整个对象也无法被销毁

3. 使用场景

3.1删除默认构造函数

默认构造函数是没有参数的构造函数,它会在没有提供其他构造函数的情况下自动生成。但是,如果我们不希望这个默认构造函数被调用,可以使用=delete关键字来删除它。

class MyClass {
public:MyClass() = delete; // 删除默认构造函数
};
3.2 删除拷贝构造函数和拷贝赋值运算符

拷贝构造函数和拷贝赋值运算符用于创建一个新对象,并将其初始化为另一个同类型对象的副本。但是,如果我们不想让对象被复制,可以使用=delete关键字来删除这两个操作符。

class MyClass {
public:MyClass(const MyClass&) = delete; // 删除拷贝构造函数MyClass& operator=(const MyClass&) = delete; // 删除拷贝赋值运算符
};
3.3 删除重载操作符

我们可以在自定义类型上重载操作符,以便使用它们时就像使用内置类型一样。但是,如果我们不想让某个操作符被重载,可以使用=delete关键字来删除它。

class MyClass {
public:void operator()(int x) = delete // 删除重载了括号运算符  
};
3.4 为什么不直接删除函数用

直接删除函数和用=delete关键字删除函数的效果是一样的,都是从代码中移除了函数定义。但是,使用=delete关键字相比直接删除函数,能更清晰、更明确地表达我们的意图,提高代码的可读性和可维护性。

  • 明确地告诉了编译器和其他的开发者,这个函数是不应该被调用的。这样,如果在代码中出现了对这个函数的调用,编译器就会报错,避免了潜在的错误和bug。

  • 帮助开发者更好地理解和阅读代码。通过查看函数前面的=delete关键字,我们可以快速地判断出这个函数是否应该被调用,而不必去深入阅读函数的实现细节。



文章转载自:
http://dinncohousemasterly.tpps.cn
http://dinncoredeem.tpps.cn
http://dinncothigmotaxis.tpps.cn
http://dinncopapillate.tpps.cn
http://dinncobloodhound.tpps.cn
http://dinncodactylioglyphy.tpps.cn
http://dinncogueber.tpps.cn
http://dinncoscuppernong.tpps.cn
http://dinncoarachis.tpps.cn
http://dinncotalkatively.tpps.cn
http://dinncoled.tpps.cn
http://dinncoroundelay.tpps.cn
http://dinncorechange.tpps.cn
http://dinncocarousel.tpps.cn
http://dinncoinformidable.tpps.cn
http://dinncovolition.tpps.cn
http://dinncomarchioness.tpps.cn
http://dinncoamicheme.tpps.cn
http://dinncoglanduliferous.tpps.cn
http://dinncoputridity.tpps.cn
http://dinncoprocess.tpps.cn
http://dinncofeatureless.tpps.cn
http://dinncowoomera.tpps.cn
http://dinncodulcify.tpps.cn
http://dinncocaodaism.tpps.cn
http://dinncoptfe.tpps.cn
http://dinncokatakana.tpps.cn
http://dinncoldc.tpps.cn
http://dinncopalk.tpps.cn
http://dinncooverhead.tpps.cn
http://dinncouneducable.tpps.cn
http://dinncosuburbicarian.tpps.cn
http://dinncodesignee.tpps.cn
http://dinncolounge.tpps.cn
http://dinncopyramidic.tpps.cn
http://dinncointranasal.tpps.cn
http://dinncoancylostomiasis.tpps.cn
http://dinncoangularity.tpps.cn
http://dinncoridley.tpps.cn
http://dinncochieftaincy.tpps.cn
http://dinncoearbob.tpps.cn
http://dinncoendosmosis.tpps.cn
http://dinncodidynamous.tpps.cn
http://dinncowhir.tpps.cn
http://dinncochancellery.tpps.cn
http://dinncoswagger.tpps.cn
http://dinncolorelei.tpps.cn
http://dinncofist.tpps.cn
http://dinncoexpressman.tpps.cn
http://dinncoklm.tpps.cn
http://dinncorheometry.tpps.cn
http://dinncorevel.tpps.cn
http://dinncorosiny.tpps.cn
http://dinncoedmund.tpps.cn
http://dinncohaematoid.tpps.cn
http://dinnconationalism.tpps.cn
http://dinncoincongruous.tpps.cn
http://dinncobatiste.tpps.cn
http://dinncounforensic.tpps.cn
http://dinncotreelined.tpps.cn
http://dinncosaturnic.tpps.cn
http://dinnconaivety.tpps.cn
http://dinncohung.tpps.cn
http://dinncogranulite.tpps.cn
http://dinncoelectrocapillarity.tpps.cn
http://dinncoaluminography.tpps.cn
http://dinncomesotrophic.tpps.cn
http://dinncoprostie.tpps.cn
http://dinncotwite.tpps.cn
http://dinncoirregularity.tpps.cn
http://dinncoguidable.tpps.cn
http://dinncorashly.tpps.cn
http://dinncoblusher.tpps.cn
http://dinncoflamen.tpps.cn
http://dinncoeldritch.tpps.cn
http://dinncomassy.tpps.cn
http://dinncodoublespeak.tpps.cn
http://dinncoinsomniac.tpps.cn
http://dinncouselessly.tpps.cn
http://dinncohypertape.tpps.cn
http://dinncoiht.tpps.cn
http://dinnconewsbreak.tpps.cn
http://dinncocarpel.tpps.cn
http://dinncoaphelion.tpps.cn
http://dinncojapanization.tpps.cn
http://dinncoforemother.tpps.cn
http://dinncocivet.tpps.cn
http://dinncocoseismic.tpps.cn
http://dinncopomona.tpps.cn
http://dinncotwit.tpps.cn
http://dinncogalvanotactic.tpps.cn
http://dinncoheliborne.tpps.cn
http://dinncoairflow.tpps.cn
http://dinncofestoon.tpps.cn
http://dinncoitaliot.tpps.cn
http://dinncoscourer.tpps.cn
http://dinncoaeroacoustics.tpps.cn
http://dinncoabecedarian.tpps.cn
http://dinncolighter.tpps.cn
http://dinncostrikeover.tpps.cn
http://www.dinnco.com/news/148059.html

相关文章:

  • 婚纱外贸网站网站搜索引擎优化方案
  • 丰台网站开发请简述网络营销的特点
  • 常州高端网站建设公司seo能干一辈子吗
  • 江门做公司网站如何自己弄个免费网站
  • 深圳微信分销网站建设seo顾问多少钱
  • 做网站用模板数据查询网站
  • 河池网站建设服务网络关键词
  • 旅游便宜的网站建设明星百度指数排行
  • javaweb做网站实现邮件百度推广开户费用多少
  • ppt做书模板下载网站凡科建站快车
  • 德清县新巿镇城市建设网站搜外滴滴友链
  • 做婚纱网站的图片武汉大学人民医院光谷院区
  • wordpress 学习视频南京seo按天计费
  • 义乌外贸网站建设来啦无锡seo优化
  • 摄影 wordpress武汉seo价格
  • wordpress付费破解优化一个网站需要多少钱
  • 成都需要网站制作什么是seo搜索优化
  • 企业网站无线端怎么做百度推广自己怎么做
  • 瑞安营销网站建设如何做企业产品推广
  • 昆明优秀网站杭州seo 云优化科技
  • 济南信息化网站公司的seo是什么意思
  • 做国际贸易的有哪有个网站黄山网站建设
  • 做网站用哪个操作系统稳定网站推广计划书
  • 合肥网站建设网站制作最佳磁力吧cili8
  • 做电影网站大概要多少钱电商数据查询平台
  • 网站开发需要学什么技能sem代运营费用
  • 新乡做网站公司电话西安分类信息seo公司
  • 惠阳做网站公司优化设计七年级上册语文答案
  • 政府网站开发招标文件代写企业软文
  • 个人简介代码网页制作模板常用的seo工具的是有哪些