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

做夺宝网站要办理什么意思什么是企业营销型网站

做夺宝网站要办理什么意思,什么是企业营销型网站,建设一个赚钱网站整体如何打算,做地方网站赚钱吗构造函数的一项重要功能是对成员变量进行初始化&#xff0c;为了达到这个目的&#xff0c;可以在构造函数的函数体中对成员变量一一赋值&#xff0c;还可以采用初始化列表。 C构造函数的初始化列表使得代码更加简洁&#xff0c;请看下面的例子&#xff1a; #include <iostre…

构造函数的一项重要功能是对成员变量进行初始化,为了达到这个目的,可以在构造函数的函数体中对成员变量一一赋值,还可以采用初始化列表。

C++构造函数的初始化列表使得代码更加简洁,请看下面的例子:

    #include <iostream>using namespace std;class Student{private:char *m_name;int m_age;float m_score;public:Student(char *name, int age, float score);void show();};//采用初始化列表Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){//TODO:}void Student::show(){cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;}int main(){Student stu("小明", 15, 92.5f);stu.show();Student *pstu = new Student("李华", 16, 96);pstu -> show();return 0;}

运行结果:小明的年龄是15,成绩是92.5李华的年龄是16,成绩是96

如本例所示,定义构造函数时并没有在函数体中对成员变量一一赋值,其函数体为空(当然也可以有其他语句),而是在函数首部与函数体之间添加了一个冒号:,后面紧跟m_name(name), m_age(age), m_score(score)语句,这个语句的意思相当于函数体内部的m_name = name; m_age = age; m_score = score;语句,也是赋值的意思。

使用构造函数初始化列表并没有效率上的优势,仅仅是书写方便,尤其是成员变量较多时,这种写法非常简单明了。初始化列表可以用于全部成员变量,也可以只用于部分成员变量。下面的示例只对 m_name 使用初始化列表,其他成员变量还是一一赋值:

    Student::Student(char *name, int age, float score): m_name(name){m_age = age;m_score = score;}

注意,成员变量的初始化顺序与初始化列表中列出的变量的顺序无关,它只与成员变量在类中声明的顺序有关。请看代码:

    #include <iostream>using namespace std;class Demo{private:int m_a;int m_b;public:Demo(int b);void show();};Demo::Demo(int b): m_b(b), m_a(m_b){ }void Demo::show(){ cout<<m_a<<", "<<m_b<<endl; }int main(){Demo obj(100);obj.show();return 0;}

运行结果:2130567168, 100

在初始化列表中,我们将 m_b 放在了 m_a 的前面,看起来是先给 m_b 赋值,再给 m_a 赋值,其实不然!成员变量的赋值顺序由它们在类中的声明顺序决定,在 Demo 类中,我们先声明的 m_a,再声明的 m_b,所以构造函数和下面的代码等价:

    Demo::Demo(int b): m_b(b), m_a(m_b){m_a = m_b;m_b = b;}

给 m_a 赋值时,m_b 还未被初始化,它的值是不确定的,所以输出的 m_a 的值是一个奇怪的数字;给 m_a 赋值完成后才给 m_b 赋值,此时 m_b 的值才是 100。

obj 在栈上分配内存,成员变量的初始值是不确定的。

初始化 const 成员变量

构造函数初始化列表还有一个很重要的作用,那就是初始化 const 成员变量。初始化 const 成员变量的唯一方法就是使用初始化列表。例如 VS/VC 不支持变长数组(数组长度不能是变量),我们自己定义了一个 VLA 类,用于模拟变长数组,请看下面的代码:

    class VLA{private:const int m_len;int *m_arr;public:VLA(int len);};//必须使用初始化列表来初始化 m_lenVLA::VLA(int len): m_len(len){m_arr = new int[len];}

VLA 类包含了两个成员变量,m_len 和 m_arr 指针,需要注意的是 m_len 加了 const 修饰,只能使用初始化列表的方式赋值,如果写作下面的形式是错误的:

    class VLA{private:const int m_len;int *m_arr;public:VLA(int len);};VLA::VLA(int len){m_len = len;m_arr = new int[len];}

http://www.hrbkazy.com/news/10850.html

相关文章:

  • 建设部工程业绩网站搜索营销
  • 效果图网站源码企业网络推广服务
  • 网站和微信公众号建设方案上海百度竞价点击软件
  • 安徽省工程建设信息官方网站谷歌官网下载app
  • 网站https建设方案seo顾问是什么
  • 常州溧阳网站建设培训课程网站
  • 网站开发 流程图成都百度推广联系方式
  • 网站建设案例ppt阿里网站seo
  • 云服务器可以做多个网站百度招聘官网
  • 房产网站怎么推广seo运营人士揭秘
  • 网站运营目的百度自助建站官网
  • 网站设计教程网络营销策划ppt
  • 健身器材网站源码网站制作流程和方法
  • 广州安全教育平台初始密码东莞seo网站优化排名
  • 南阳哪里做网站比较好搜索百度app下载
  • 做网站公司的未来seo关键字优化软件
  • 无锡本地模板网站建设产品女排联赛最新排行榜
  • 公司网站设计与制深圳龙华区大浪社区
  • 有没有什么网站免费做名片友情链接交换平台免费
  • 衡阳百度网站建设seo岗位职责
  • 素材网站源码百度做免费推广的步骤
  • 网站建设简介百度导航最新版本
  • 西宁网站建设平台公司百度一下你就知道官网网页
  • 阜阳做网站哪家好北京seo收费
  • 音乐介绍网站怎么做怎样做网站推广啊
  • 英文都不懂 学网站建设维护难吗怎么做网络营销推广啊
  • 服务佳的小企业网站建设百度搜索引擎盘搜搜
  • php网站开发优化seo优化一般多少钱
  • 山东建设执业资格注册中心网站网络营销推广专员
  • 网站正在建设中html电子商务是干什么的