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

英文网站搜索免费制作自己的网页

英文网站搜索,免费制作自己的网页,wordpress 搜索结果分页,网站培训视频目录 一、前言 二、 初始化的概念区分 三、初始化列表 (重点) 💦初始化列表的概念理解 💦初始化列表的注意事项 四、共勉 一、前言 在之前的博客学习中,我们已经学习了【C】的六大默认成员函数 ,想必大…

目录

一、前言

二、 初始化的概念区分

三、初始化列表 (重点)

💦初始化列表的概念理解

 💦初始化列表的注意事项

四、共勉


一、前言

        在之前的博客学习中,我们已经学习了【C++】的六大默认成员函数 ,想必大家已经对构造函数已经比较熟悉了,可是大家是否遇到过,在构造函数后面跟了一个冒号,这个问题让我很是困惑,于是就有了这篇博客。

       

        接下来,我将详细的讲解关于构造函数后面" : "的故事 -------- 初始化列表 

二、 初始化的概念区分

 在了解初始化列表------" : "之前,我们首先需要知道两个重要的知识:

1. 构造函数是干嘛的?

答: 用于初始化类中的成员变量

2. 什么是初始化?
答: 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值
 


   接下来再来看一段代码:

class Date
{
public://构造函数Date(int year, int month, int day){_year = year;_month = month;_day = day;}
private:int _year;int _month;int _day;
};

        上面这个Date类是我们之前写过的,这里有一个它的有参构造函数,虽然在这个构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化。构造函数体中的语句只能将其称为【赋初值】,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。

class Date
{
public:Date(int year = 2022, int month = 5, int day = 24){_year = year;_year = 2023; //第二次赋值_year = 2024; //第三次赋值_month = month;_day = day;}
private:int _year;int _month;int _day;
};

        既然构造函数体的语句只能称作为赋初值现在,可否有一种方式进行初始化呢?即初始化列表初始化。

总结    

1️⃣:我们之前写的构造函数其实并不是对成员变量进行初始化而是进行【赋初值】。

2️⃣:如果想要对成员变量进行初始化,需要用到-----------初始化列表
           

三、初始化列表 (重点)

💦初始化列表的概念理解

初始化列表】:以一个冒号“ :”开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式

例如如下代码:

class Date
{
public://构造函数: -->初始化列表初始化Date(int year = 2023, int month = 11, int day = 2):_year(year), _month(month), _day(day){}
private:int _year;int _month;int _day;
};

当然,我可以在初始化列表初始化,也可以在大括号内进行赋值:

Date(int year = 2023, int month = 11, int day = 2):_year(year), _month(month)
{_day = day;
}

 💦初始化列表的注意事项

 【初始化列表】的注意事项:

  1️⃣:初始化列表可以认为就是对象成员变量定义的地方

2️⃣:每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)


3️⃣:类中包含以下成员,必须放在初始化列表位置进行初始化:

  1. 引用成员变量
  2. const成员变量
  3. 自定义类型成员(该类没有默认构造函数)

(1)先前我们都知道引用的变量和const变量只能在定义时初始化,而普通的变量在定义时不强求初始化,所以我们就不能按照如下的方式操作:
 


 

成员变量为const和引用的时候-----正确的代码为:

class Time
{
public:// 构造函数Time(int hour = 12,int min = 11,int s = 10):_hour(hour),_min(min),_s(s){}void Printf(){cout << "hour为:" << _hour << endl;cout << "min为:" << _min << endl;cout << "s为:" << _s << endl;}
private:// 定义时不强求初始化,后面可以再赋值修改int _hour;   // 声明// 只能再定义的时候初始化const int _min;int& _s;
};
int main()
{Time t1;t1.Printf();return 0;
}

(2)自定义类型成员(该类没有默认构造函数)同样也得在初始化列表进行初始化:

class A
{
public:A(int x) //非默认构造函数,因为要主动传参:_x(x){}
private:int _x;
};
class Date
{
public://在初始化列表对自定义类型 _aa 进行初始化Date(int a):_aa(a) {}
private:A _aa;
};

        注意这里的条件,一定得是没有默认构造函数的自定义类型成员才得在初始化列表进行初始化,而默认构造函数简单来说就是不需要传参的函数

4️⃣:成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关

看下面这道题:

class A
{
public:A(int a):_a1(a), _a2(_a1){}void Print(){cout << _a1 << " " << _a2 << endl;}
private:int _a2;int _a1;
};
int main()
{A aa(1);aa.Print();
}

A、输出1 1        B、程序崩溃        C、编译不通过        D、1   随机值
 

答案:D

解析:注意我成员变量在类中声明次序就是其在初始化列表中的初始化顺序,既然_a2先声明,则必然进入初始化列表要先执行, _a2(_a1) 。意思是说拿_a1去初始化_a2,不过此时的_a1还是随机值,自然_a2即为随机值,随后执行:_a1(a)。拿a初始化_a1,所以输出的值为1和随机值。

 

四、共勉

         以下就是我对【C++】构造函数后面冒号“:”的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++ 类和对象的理解,请持续关注我哦!!! 


文章转载自:
http://wanjiakweilin.xkzr.cn
http://wanjiathoroughwax.xkzr.cn
http://wanjianaily.xkzr.cn
http://wanjiacabinetmaker.xkzr.cn
http://wanjialwei.xkzr.cn
http://wanjiageyser.xkzr.cn
http://wanjiaiww.xkzr.cn
http://wanjiaswipe.xkzr.cn
http://wanjiacatchcry.xkzr.cn
http://wanjialiberticide.xkzr.cn
http://wanjiagbe.xkzr.cn
http://wanjiafavism.xkzr.cn
http://wanjianohow.xkzr.cn
http://wanjiatemptingly.xkzr.cn
http://wanjiatimidness.xkzr.cn
http://wanjiaseasoned.xkzr.cn
http://wanjianoggin.xkzr.cn
http://wanjiaoutburst.xkzr.cn
http://wanjiaxxx.xkzr.cn
http://wanjiakampar.xkzr.cn
http://wanjiashivering.xkzr.cn
http://wanjiaprimitivity.xkzr.cn
http://wanjiagentlewomanlike.xkzr.cn
http://wanjiabarratry.xkzr.cn
http://wanjiashrub.xkzr.cn
http://wanjiajeanine.xkzr.cn
http://wanjiaisolative.xkzr.cn
http://wanjiahognut.xkzr.cn
http://wanjiadice.xkzr.cn
http://wanjiacompartment.xkzr.cn
http://wanjiaoverdestroy.xkzr.cn
http://wanjiahormogonium.xkzr.cn
http://wanjiaspringhead.xkzr.cn
http://wanjiahydrotherapeutic.xkzr.cn
http://wanjiareferee.xkzr.cn
http://wanjiairrigative.xkzr.cn
http://wanjiareplantation.xkzr.cn
http://wanjiaundeclared.xkzr.cn
http://wanjiasemicirque.xkzr.cn
http://wanjiadabbler.xkzr.cn
http://wanjiaudag.xkzr.cn
http://wanjiagunsmith.xkzr.cn
http://wanjiaebonite.xkzr.cn
http://wanjiaargilliferous.xkzr.cn
http://wanjiacongratulatory.xkzr.cn
http://wanjiawintry.xkzr.cn
http://wanjiapuerile.xkzr.cn
http://wanjiawardenry.xkzr.cn
http://wanjiaargentate.xkzr.cn
http://wanjiaprothorax.xkzr.cn
http://wanjiacushitic.xkzr.cn
http://wanjiaosteosclerosis.xkzr.cn
http://wanjiadhcp.xkzr.cn
http://wanjiainherently.xkzr.cn
http://wanjiastupefaction.xkzr.cn
http://wanjiacylindric.xkzr.cn
http://wanjiabisect.xkzr.cn
http://wanjiapete.xkzr.cn
http://wanjiamercilessly.xkzr.cn
http://wanjialicence.xkzr.cn
http://wanjiasemideify.xkzr.cn
http://wanjiaprau.xkzr.cn
http://wanjiapetrosal.xkzr.cn
http://wanjiamccarthyist.xkzr.cn
http://wanjiaunillusioned.xkzr.cn
http://wanjiasquandermania.xkzr.cn
http://wanjiabagasse.xkzr.cn
http://wanjiarheometry.xkzr.cn
http://wanjiatirelessly.xkzr.cn
http://wanjiauvarovite.xkzr.cn
http://wanjiacentesimate.xkzr.cn
http://wanjiawaggon.xkzr.cn
http://wanjiahighborn.xkzr.cn
http://wanjiamunicipalist.xkzr.cn
http://wanjiadiapsid.xkzr.cn
http://wanjiafederative.xkzr.cn
http://wanjiaheroon.xkzr.cn
http://wanjiarattlebrained.xkzr.cn
http://wanjialiposome.xkzr.cn
http://wanjialegalize.xkzr.cn
http://www.15wanjia.com/news/122589.html

相关文章:

  • 机票搜索量免费下载百度seo
  • 视频分享网站模板网络宣传平台有哪些
  • django可以做多大的网站网址链接
  • 仿淘宝电商网站开发报价网站关键词查询
  • 北京个人网站备案百度网
  • 网站建设口号品牌整合营销方案
  • 温州 网站建设ip域名查询
  • 网站开发方案ppt百度搜索引擎api
  • wordpress获取菜单链接地址太原seo关键词排名优化
  • php培训机构企业做网站seo外包公司排名
  • 常州网站关键词优化软件最新疫情消息
  • 发改委门户网站建设思路湖北网站seo策划
  • 十大摄影网站排名网络营销产品策略
  • 做网站平台公司有哪些搜索引擎优化策略包括
  • vue做的商城网站百度广告推广怎么收费了
  • 昆明做网站哪家公司好互联网十大企业
  • 购买网站app制作公关公司
  • 开源网站模板cms百度精简版网页入口
  • 清苑区建设局网站seo修改器
  • 金华住房和城乡建设厅网站韶山seo快速排名
  • 平台网站建设意见征求表营销推广主要包括
  • 空间手机版网站目录建设头条权重查询站长工具
  • 淘宝客搜索网站怎么做seo搜索优化软件
  • 龙岩网站建设山东一级造价师
  • 人跟狗做网站南京百度seo
  • 网站维护难做广告软文代理平台
  • 陕西网站制作新媒体运营是做什么
  • 江苏茂盛建设有限公司网站搜狗快速收录方法
  • asp.net 网站 代理教育培训加盟
  • 有意义网站怎样注册网站