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

靖宇东兴自助建站百度推广价格表

靖宇东兴自助建站,百度推广价格表,南通海洲建设集团网站,企业管理咨询报告案例构造函数的一项重要功能是对成员变量进行初始化#xff0c;为了达到这个目的#xff0c;可以在构造函数的函数体中对成员变量一一赋值#xff0c;还可以采用初始化列表。 C构造函数的初始化列表使得代码更加简洁#xff0c;请看下面的例子#xff1a; #include iostre…构造函数的一项重要功能是对成员变量进行初始化为了达到这个目的可以在构造函数的函数体中对成员变量一一赋值还可以采用初始化列表。 C构造函数的初始化列表使得代码更加简洁请看下面的例子 #include iostreamusing 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(){coutm_name的年龄是m_age成绩是m_scoreendl;}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 iostreamusing 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(){ coutm_a, m_bendl; }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.eeditor.cn/news/124135/

相关文章:

  • 大连网站制作师大坪网站建设
  • 我要看一集片做网站人防门电气图纸符号大全久久建筑网
  • 网站建设 2015年11月企业管理软件价格
  • 马关住房和城乡建设局网站浙江嘉兴最新事件
  • 长春网站建设公司十佳收钱码合并的网站怎么做
  • 怎么帮自己做的网站申请地址网络推广引流是做什么工作
  • 网站制作网站建设案例宝安做网站
  • 义乌市做网站wordpress 3.8.1
  • 宁波网站建设哪家比较好雍泰建设公司官网
  • 建免费的网站新手做网站需要哪些软件
  • 长春科技网站建设企业网络组建
  • 做爰片免费网站给我看看免费网站建设好不好
  • 手机网站底部电话免费的自助设计网站
  • 做面包有关电影网站网站建设注意事项
  • 网站空间在哪里买响应式网站缺点
  • 上海网站制作平台wordpress 颜色选择器
  • 白银做网站的董事钢材原材料东莞网站建设
  • 网页设计做一个网站手机应用开发要学什么
  • 注册公司网站地址该如何填郑州门户网站建设
  • 深圳网站策划网站备案 新网
  • 医院网站页面设计网站开始怎么做的
  • cydia软件源网站开发私域流量代运营公司
  • 南京建站方案网站添加微博
  • 泰安网站建设定制公司多语言网站建设费用
  • php房产中介网站源码wordpress 输出时间
  • 淘宝客网站免费建设手机端开发app
  • 网站开发前后端分离要多少钱做爰全过程免费的视频网站
  • 怎样下载门户网站连锁加盟网站制作
  • wordpress仿站上传到网站系统灵活性
  • 中山中小型网站euorg免费域名怎么注册