OOP


对象

对象具有标识,在一个明确的边界里封装了状态和行为。

状态描述的是对象在不同时刻所表现出来的一种状况或者情形。

对象的行为确定了一个对象如何行动,如何对事件进行响应。

类是包含对象的集合,它们共享着相同的属性,操作,关系和语义。

内联函数(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指针不能被改变


文章作者: zzx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zzx !
评论
  目录