c++面向对象笔记

本文章总结了所有面向对象可能会用到的笔记以及知识,同时也是c++GESP6级的必考题,不推荐0基础阅读,请见谅!

一.面向对象三大特性

C++面向对象的三大特性:封装、继承、多态

1.封装

1.1封装的意义

封装的意义如下:

  • 将属性/行为作为整体,表现人、事、物。
  • 将属性/行为加以权限以便控制。

1.2封装的格式(语法):

class 类名{
    访问权限: 属性 / 行为
};

解释如下:
类名就是类的名字,访问权限一般有三种:

  1. public 公共权限
  2. protected 保护权限
  3. private 私有权限

这三条也就是封装的第二条意义:将属性/行为加以权限以便控制。

2.继承

2.1继承的意义

继承的意义如下:利用继承的技术,减少重复代码。

2.2继承的好处

继承的好处:可以减少重复的代码

2.3继承的语法(格式)

语法(格式):

class 子类 : 继承方式 父类

A 类称为子类 或 派生类;

B 类称为父类 或 基类。

2.4派生类成员分类

派生类中的成员,包含两大部分

1.从基类继承过来的,2.自己增加的成员。

从基类继承过过来的表现其共性,而新增的成员体现了其个性。

2.5继承方式汇总

相信大家在看语法的时候愣在了继承方式,其实非常easy。

三大继承方式:

  • 公共继承
  • 保护继承
  • 私有继承

3.多态

3.1多态的意义

3.1.1分类

多态分为两类

  • 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名
  • 动态多态: 派生类和虚函数实现运行时多态
3.1.2区别

静态多态和动态多态区别:

  • 静态多态的函数地址早绑定 - 编译阶段确定函数地址
  • 动态多态的函数地址晚绑定 - 运行阶段确定函数地址

3.2总结

多态满足条件

  • 有继承关系
  • 子类重写父类中的虚函数

多态使用条件

  • 父类指针或引用指向子类对象

重写:函数返回值类型、函数名、参数列表完全一致称为重写

4.运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

5.class与struct

在C++中 struct和class唯一的区别在于默认访问权限不同,如下:

  • struct 默认权限为公共
  • class 默认权限为私有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值