inline(内联函数)
- 函数若在类内完成定义就自动成为inline候选人 编译器有时候也无法将一个复杂函数展开成inline
- 类外可以加关键字也可以成为inline候选人
access level(访问级别)
- 数据在没有特殊情况下一定要封装成private
- 一般的函数都是public的
public: 可以被任意实体访问
protected: 只允许子类及本类的成员函数访问
private: 只允许本类的成员函数访问
constructor (ctor构造函数)
- 尽量使用列初始化这样效率会更高(在初始化这一步就完成而不需要进行align(赋值))
class test{
private:
int x,y;
public:
test(int l = 0,int r = 0) //这里有默认实参
: x(l) , y(r)
{}
};
int main(){
test test;
}
ctor可以有很多个重载(overloading)
- 注意不能这样写 编译器会不知道使用哪个构造函数
class test{
private:
int x,y;
public:
test(int l = 0,int r = 0)
: x(l) , y(r)
{}
test()
: x(1) ,y(0)
{}
};
int main(){
test test; // error Call to ctor is ambiguous
}