成员访问权限、继承方式有3种:
子类内部访问父类成员的权限,是以下两项种权限最小的那个:
开发中用的最多的继承方式是public,这样能保留父类原来的成员访问权限
访问权限不影响对象的内存布局
一种便捷的初始化成员变量的方式
#include
using namespace std;
struct Person
{int m_age;int m_height;/*Person(int age, int height) {m_age = age;m_height = height;}*/Person(int age, int height) :m_age(age), m_height(height) {}
};
int main() {Person person(18, 180);return 0;
}
只能在构造函数种使用
初始化顺序只跟成员变量的声明顺序有关
//分开写,默认参数只能写在函数声明中
struct Car
{int m_age;int m_height;Car(int age = 0, int height = 0);
};
//初始化列表只能写在函数实现中
Car::Car(int age, int height) :m_age(age), m_height(height) {}
如果函数声明和实现是分离的:
#include
using namespace std;
struct Person
{int m_age;int m_height;Person():Person(0, 0) {}//Person(){// //相当于创建了一个临时的Person对象// Person(0, 0);//}Person(int age, int height) {m_age = age;m_height = height;}
};
int main() {Person person;cout << person.m_age << endl;cout << person.m_height << endl;return 0;
}