对象
对象具有标识,在一个明确的边界里封装了状态和行为。
状态描述的是对象在不同时刻所表现出来的一种状况或者情形。
对象的行为确定了一个对象如何行动,如何对事件进行响应。
类
类是包含对象的集合,它们共享着相同的属性,操作,关系和语义。
内联函数(inline)
在类内定义的函数,都默认为内联函数,类外的函数,需要在返回类型前加inline
inline只是建议编译构建函数时,构建为内联型的,具体是不是由编译决定
inline本质:空间换时间,加快程序运行速度
参数值缺省
设置函数参数默认值,若有实际参数值,则缺省值无效,否则,参数值采用缺省值
带有缺省值的参数必须全部防止在参数的最后,即在带有缺省值的参数的右边不再出现无缺省值的参数。
占位符参数
函数声明时,参数可以没有标识符,称这种参数为占位符参数或者哑元。
哑元多用于修改函数的功能,实现添加其他形参而不使函数接口发生变化
函数重载(本质:多个同名函数)
把多个功能类似的函数定义为重名函数,编译器会根据不同的参数类型和个数来调用不同的函数
调用成员函数时,用成员选择符“$.$”来指示从属关系
C++的访问控制
public/private/protected
public:公有成员,声明后所有成员可以被所有人访问
private:私有成员,除了该类型的创建者和类的内部成员函数之外,任何人不能访问
protected:保护成员,与private基本相同,区别是继承的结构可以访问protected成员,但不可以访问private成员
友元:显示地声明哪些人可以访问其私有实现部分,表明的是一种信任关系。
friend void A::afun();//A中的afun函数可以访问其私有成员
友元不是类的成员,只是一个声明,友元可以是外部全局函数、类或者类的成员函数。
class的默认成员为私有成员,而struct的默认成员为公有成员
类的构造函数
编译器在创建对象时自动调用该函数,构造函数和类同名,可以带参数,没有返回值
构造函数可以重载
如没有定义构造函数,编译器会自动创建一个默认的构造函数。
析构函数
在撤销对象时自动调用该函数,通常做一些撤销对象前的回收工作,必须是public函数
当对象被创建时,调用构造函数;当对象被撤销时,调用析构函数。
如果只想执行析构函数的执行操作,而不释放对象的空间,则可以显式调用析构函数。
成员变量与成员函数
成员函数在类外定义采用void A::afun(){}
形式
this指针不能被改变