建筑网站建设需要注意哪些,厦门安岭路网站建设,wordpress雄欲,怎样建自己的网站文章目录 一、基本格式二、使用场景 一、基本格式
C提供了初始化列表语法#xff0c;用来初始化属性。 基本格式:
构造函数(参数1#xff0c;参数2#xff0c;参数3...):属性1(值1)#xff0c;属性2(值2)... {// 构造函数体
}例子
#include iostream
using name… 文章目录 一、基本格式二、使用场景 一、基本格式
C提供了初始化列表语法用来初始化属性。 基本格式:
构造函数(参数1参数2参数3...):属性1(值1)属性2(值2)... {// 构造函数体
}例子
#include iostream
using namespace std;class Person{
public :// 初始化列表初始化属性Person():m_a(10),m_b(20),m_c(30){} // 初始化列表初始化属性Person(int a,int b,int c):m_a(a),m_b(b),m_c(c){} void Print_Info(){cout endl;cout m_a: m_a endl;cout m_b: m_b endl;cout m_c: m_c endl;cout endl endl;}private:int m_a;int m_b;int m_c;
};int main(){(Person()).Print_Info();(Person(1,2,3)).Print_Info();
} 初始化列表只能初始化一次初始化列表中的元素不能重复。 编译器允许构造函数赋初值和初始化列表初始化混用。
Person(int a,int b,int c):m_a(a),m_b(b),m_c(c){m_a 20;
}
// 最终结果: m_a 为20 初始化列表的执行是先于构造函数的。
二、使用场景
const成员变量、引用成员变量、没有默认构造函数的类成员只能在初始化列表初始化。
const成员变量必须在定义的时候初始化引用成员变量必须在定义的时候初始化没有默认构造函数的类类型成员变量
#include iostream
using namespace std;class Cat {
public:string name;// 默认构造函数是不用传参就可以调用的构造函数有三种// 1. 无参默认构造函数// 2. 所有参数带默认值的构造函数// 3. 编译器自动生成的默认构造函数 Cat( string name) : name(name){// 自定义了构造函数后 编译器就不会生成默认构造函数 // 因此Cat类没有默认构造函数 }
};class SmallCat{
public:SmallCat(string name,int weight,int age):weight(weight),cat(Cat(name)),age(age) {}void Print_Info(){cout cat.name endl;cout weight endl;cout age endl;}private:const int weight;Cat cat;int age;
}; int main(){int age 2;(SmallCat(yyrwkk,1,age)).Print_Info();
} 尽量使用初始化列表初始化初始化列表的执行是在构造函数的用户代码之前。
对于自定义类型成员变量会先使用初始化列表初始化。
成员变量初始化的顺序是成员变量在类中的声明次序与初始化列表中的先后次序无关。