C++面向对象
面向对象三大特性
封装:将具体的实现过程和数据封装成一个函数,只能通过接口访问,降低耦合性
继承:子类继承父类的特征和行为,子类有父类非private方法或成员变量,子类可以对父类的方法进行重写,增强了类之间的耦合性,但是当父类中的成员变量、成员函数或者类本身被 final
关键字修饰时,修饰的类不能继承,修饰的成员不能重写或修改。
多态:多态就是不同继承类的对象,对同一消息做出不同的响应,基类的指针指向或绑定到派生类的对象,使得基类指针呈现不同的表现方式。在 C++ 中多态一般是使用虚函数来实现的,使用基类指针调用函数方法时,如果该指针指向的是一个基类的对象,
则调用的是基类的虚函数;如果该指针指向的是一个派生类的对象,则调用的是派生类的虚函数。
重载、重写、隐藏的区别
重载:发生在同一个作用域中,函数名称相同,但参数的类型,个数,顺序不同(即参数列表不一样),不关心函数返回值
int temp(int a)
void temp(int a)
这俩不发生重载,不被允许
隐藏:非虚函数,派生类中与基类同名的函数和成员变量都被隐藏,如需要访问则需要加上基类作用域
重写:基类的虚函数在派生类中进行重写,函数名、参数列表、返回值类型都必须同基类中被重写的函数一致,只有函数体不同。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!