类
//类定义
class test{
public:
test(){init= 0 };//不带参数的构造函数
test(int init_value){
init = init_value; //带参数的构造函数
}
void write(int x){
init = x;
};//成员函数声名和定义
private:
int init;
}
//定义对象
test a;
以上涉及到的几个概念点:
1.成员:类由成员构成,其中函数被称为成员函数。
- 定义在类内(默认是内联函数)
** 注: 内联函数:编译时而非运行时直接进行替换,为了解决一些频繁调用小函数大量消耗栈 - 定义在类外,需要使用作用域区分符::,例子中void write(int x) 定义在类外:
void test::write(int x){
....
}
- 类访问修饰符:
- public: 类成员可以被任何类的任何方法访问
- privated: 私有成员,仅能被其所在类和友元函数访问
- protected: 可以被其所在类、友元函数及其子类访问
三种继承方式导致子类对父类成员访问的权限变更:
继承方式 | 基类public | 基类private | 基类protected |
---|---|---|---|
public | public | 不可见 | protected |
private | private | 不可见 | private |
protected | protected | 不可见 | protected |
3.构造函数:
- 带参数/不带参数
- 初始化列表:成员变量初始化顺序仅与成员变量在类中声名顺序有关
** 注:const的数据成员(对象被构造后不能被改变)或者是没有默认构造函数的类,则必须在初始化列表初始化成员变量
test::test(int val) :init(val){}