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

深圳龙岗网站建设哪家好公司seo兼职平台

深圳龙岗网站建设哪家好公司,seo兼职平台,分销网站开发合同,做网站需要切图吗目录 前言 01 如果不用成员列表如何初始化变量 02 成员列表初始化 03 为什么要使用成员列表初始化呢? 04 案例代码 前言 本期我们聊聊构造函数初始化列表。 你应该经常使用成员初始化列表,如果你不喜欢这种代码风格,建议你还是慢慢习惯吧…

目录

前言

 01 如果不用成员列表如何初始化变量

02 成员列表初始化

03 为什么要使用成员列表初始化呢?

04 案例代码


前言

本期我们聊聊构造函数初始化列表。

你应该经常使用成员初始化列表,如果你不喜欢这种代码风格,建议你还是慢慢习惯吧,因为这不仅仅是代码风格的问题,它有功能上的区别,如果不使用它们,就会浪费性能。

那什么是成员初始化列表呢?

与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。

 01 如果不用成员列表如何初始化变量

这是我们在构造函数中初始化类成员(变量)的一种方式,当我们编写一个类并向该类添加成员时,通常需要某种方式对这些成员进行初始化,这些操作通常会在构造函数中完成。

我们有两种方法可以在构造函数中初始化一个类成员。

我们先看第一种,就是的构造函数内初始化

class Dog
{
private:int m_age;                    //年龄string m_name;          //名字double m_weight;    //体重};

这里有一个 Dog类,它有 int m_age,double weight ,string name 成员变量,还没有任何构造函数,我们添加构造函数。

其中一种构造函数,是接受 三种变量作为参数的构造函数。

另外创建一个默认构造函数,没有任何参数。

我想将参数传入,将 Dog对象的变量初始化了

而在无参的构造函数中,我们简单的将 name 设为 “Dog”,其他参数则设置为0

我们先简单的测试一下当前的代码。

测试代码

#include <iostream>
using namespace std;class Dog
{
private:int m_age;                    //年龄string m_name;          //名字double m_weight;    //体重
public:Dog(int p_age,string p_name,double p_weight){m_age = p_age;m_name = p_name;m_weight = p_weight;}Dog(){m_name = "Dog";m_age = 0;m_weight = 0;}void print_animal_messge(){cout<<"name:"<<m_name<<"\t: "<<"weight:"<<m_weight<< "\t"<<"age:"<<m_age<<endl;}
};int main()
{Dog xiaoHuan(15,"xiaoHuan",10.1);xiaoHuan.print_animal_messge();return 2;
}

这样做完全没有问题,这可能是我们一直都在使用的方式。但是在 C++ 中实际还有另外一种方法,就是使用成员初始化列表。一切都很顺利。

02 成员列表初始化

让我们看看第二种方法来初始化。

与直接设置 m_name 不同,这次我们通过成员初始化列表来实现。

在写了构造函数和参数之后,我们可以添加一个冒号,格式如上。可以在同一行也可以另起一行,加一个缩进。然后开始列出你想要初始化的成员。

我们顺便添把其他变量也设置为 0。

有一件事你需要知道,你定义了一些变量,那么你的成员初始化列表也需要按照顺序完成,如果你不按照顺序写,有一些编译器会警告你,因为不管你怎么写初始化列表,它都会按照定义类成员的顺序进行初始化。打乱顺序会导致各种各样的依赖性问题。

在另一个构造函数中,我们可以这样做。

运行之后,你会发现结果和之前是一样的。

就是这样,这就是成员初始化列表。

03 为什么要使用成员列表初始化呢?

那么,为什么我们要这样做呢?它有什么意义吗?只是代码风格的问题吗?

我建议你这样写代码,因为如果你有很多成员变量,如果你在函数里面初始化它们就会非常混乱,可能很难看出构造函数到底在做什么,因为之后你还有某些代码做其它事情,但是你的大部分构造函数的内容都只是在初始化变量,都是些琐碎、无聊的事情,你会很想隐藏它们,这就是为什么我建议你这样做。

非成员列表初始化

成员列表初始化

即使是从代码风格的角度来看,这样也是很美观的,它可以让你的构造函数非常干净,易于阅读。

#include <iostream>
using namespace std;class Dog
{
private:int m_age;                    //年龄string m_name;          //名字double m_weight;    //体重
public:Dog(int p_age,string p_name,double p_weight): m_age(p_age), m_name(p_name), m_weight(p_weight){}Dog(string p_name): m_name(p_name), m_weight( 0.2 ), m_age(0){}Dog(){m_name = "Dog";m_age = 0;m_weight = 0;}void print_animal_messge(){cout<<"name:"<<m_name<<"\t: "<<"weight:"<<m_weight<< "\t"<<"age:"<<m_age<<endl;}
};int main()
{Dog xiaoHuan("xiaoHuan");xiaoHuan.print_animal_messge();return 2;
}

http://www.dinnco.com/news/37895.html

相关文章:

  • 专业做包包的网站百度seo排名优化公司哪家强
  • 准备网站的工作云搜索引擎
  • 衡水网站建设浩森宇特经典软文案例标题加内容
  • 网站开发合同的付款方式互联网培训班学费多少
  • 西宁做网站制作的公司长沙百度推广优化排名
  • php怎么做直播网站吗新闻联播直播 今天
  • 做网站用矢量图还是位图新网站秒收录技术
  • 在酒吧里做那个视频网站品牌营销推广方案
  • 网站排名优化怎么弄免费推广网址
  • 中小企业网站建设客户需求调查问卷提高工作效率的方法不正确的是
  • 绍兴柯桥哪里有做网站的百度指数属于行业趋势及人群
  • 南漳网站设计网站营销推广有哪些
  • 自己能注册网站吗网上电商怎么做
  • 西宁网站建设嘉荐君博l营销策划案ppt优秀案例
  • 网站请人做的 域名自己注册的 知道网站后台 怎么挂自己的服务器西安seo排名外包
  • 建设化妆品网站的成本seo站内优化
  • 假的建设银行网站google搜索首页
  • 企业宣传注册哪些论坛 网站好站长推荐产品
  • 网站分析报告社群营销是什么意思
  • 临沂最好的做网站公司网站自建
  • wordpress网站在哪里修改教育培训网站官网
  • 做web网站需要做网络通信吗浏览器正能量网站免费
  • 如何用ps做网站页面设计推广百度百科
  • 网页设计与制作模板免费排名优化哪家好
  • 做视频网站利润如何seo关键词有话要多少钱
  • 销售手机网站的后期安排seo推广培训费用
  • 合肥建设学校网站北京公司排名seo
  • 做网站好还是小程序好现在疫情怎么样了最新消息
  • 京东做代码的网站吗网络营销策划的主要特点
  • 网站建设saas附近学电脑培训班