[关闭]
@songying 2019-02-21T14:02:11.000000Z 字数 708 阅读 959

c++ 面向对象

未分类


1. 封装性

默认情况下类的成员都是private的

修饰符 说明
public 成员变量或函数在程序类的外部是可访问的。我们常用public来定义类的接口。
private 成员变量或函数在类外部是不可访问的,只有类和友元函数可以访问私有成员,子类也不可访问。我们常用private封装类的实现细节。
protected 成员变量或函数在子类中是可以访问的,外部的其余类不能访问

2. 继承

继承方式 说明
public 继承 成员的访问属性不发生变化
protected 继承 public成员的属性变为protected, 其余成员属性不变
private 继承 所有成员属性变为private
  1. class 子类名 : 访问修饰符 父类名{
  2. }
  1. class 子类名:访问修饰符 父类名,访问修饰符 父类名,… {
  2. };

3. 多态

多态指的是对象在调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。

1. 静态多态: 函数重载

重载是指一个函数或方法具有相同名称,但是它们的参数列表和实现不相同。编译器在编译期间完成,其根据实参类型推断出要调用的函数。

  1. // 函数重载
  2. class class_name{
  3. public:
  4. type func_name(type val){
  5. }
  6. type func_name(type val){
  7. }
  8. }
  9. // 运算符重载
  10. class class_name{
  11. public:
  12. type operator+(type val);

2. 动态多态:虚函数

在程序执行期间(非编译期) 判断对象的实际类型,再根据实际类型调用相应的方法。

  1. class class_name{
  2. public:
  3. virtual type func_name();
  4. virtual type func_name() = 0; // 纯虚函数
  5. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注