1. C++与C区别
- 结构:C语言是面向过程的通用编程语言,其结构只包含成员变量,没有成员方法。;C++是基于C发展而来的,结构中可以包含成员变量和成员函数。
- 编程范式:C语言是过程式编程语言,注重函数设计;C++支持多种编程范式,既可以进行面向过程的程序设计,也可以进行面向对象的程序设计。
- 语法特性:C语言语法简单,以函数为基础;C++在C基础上增加类、对象、模板等新特性。
- 类型检查:C语言类型检查宽松,允许隐式转换;C++有更严格的类型检查,支持强类型编程,对数据类型的转换更加严格。
- 函数库:C语言有标准函数库,但较松散;C++标准库集成更多功能,
函数都是有集成的,更加紧密。
2. C++面向对象(OOP)的思想
C++是一种面向对象编程的编程语言,面向对象编程是一种编程范式。
封装:将数据和方法绑定形成类,通过类和访问修饰符隐藏对象内部细节,对外只提供接口(公有成员函数)来提高数据安全性,降低系统的耦合度。
继承:通过基类和派生类实现代码复用,基于一个基类(父类)来定义一个派生类(子类),派生类可以对父类的属性和方法进行继承、添加和重写。
多态:允许不同对象响应同一消息,通过虚函数实现运行时多态,提升程序灵活性。
3. 多态
在C++中,多态(Polymorphism)是一种面向对象编程的特性,它允许我们通过一个共同的接口(通常是基类中的虚函数)来调用不同的函数实现。多态性主要分为两种形式:编译时多态(静态多态,主要通过函数重载和模板实现)和运行时多态(动态多态,主要通过虚函数和继承实现)。
4. 多态的特性及实现
特性:
接口重用:子类可以重用父类的接口,而不需要重新定义。
可替换性:父类引用可指向子类对象,实现对子类的通用引用。
扩展性:可以在不影响现有代码的情况下增加新的派生类。
实现:
- 继承:让子类获得父类属性和方法,方法重写则允许子类提供自己的实现。
- 接口:定义方法的签名但不提供实现,类通过接口提供具体方法实现,一个类可以实现多个接口。
评论区