欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > C++中类的三大特性是什么?

C++中类的三大特性是什么?

2024/11/5 13:21:25 来源:https://blog.csdn.net/2302_80908313/article/details/143491792  浏览:    关键词:C++中类的三大特性是什么?

封装可以使得代码模块化(是基础),继承可以扩展已存在的代码(是关键),而多态的目的则是为了接口重用(是补充

封装

封装是将数据(成员变量)和操作这些数据的函数(成员函数)结合在一起,形成一个单元。封装的核心是访问控制,通过使用访问修饰符(如 publicprotected 和 private)来限制外部对类内部数据和实现的直接访问。

通过封装,隐藏了类的实现细节和成员数据,实现了代码模块化。用户只需关注对象的接口,而不是其内部实现,从而提高了代码的可靠性和可维护性。

class Box {  
private:  double length;   // 成员变量,只能在类内部访问  
public:  void setLength(double len) {    // 成员函数,允许外部访问  length = len;  }  double getLength() {  return length;  }  
};

继承

继承是实现类之间关系的一种机制,可以通过继承派生出新类(子类),从已有的类(基类)中获取成员变量和成员函数。继承支持代码重用和逻辑组织,使得建立层次化的类结构成为可能。

C++ 中的继承可以是单继承(一个类继承自一个基类)或多继承(一个类可以继承自多个基类)。

通俗点说:就是子类继承父类,获得父类中实现的功能,并且还可以进行扩展。

class Shape {  
public:  void draw() {  // 绘制图形的代码  }  
};  class Rectangle : public Shape { // Rectangle 继承自 Shape  
public:  void draw() {  // 绘制矩形的代码  }  
};

多态

多态分为:静态多态和动态多态,静态多态:在编译期间就可以确定的多态 例如:函数重载和运算符重载和模板,函数重载在编译期间通过实参的类型能确定调用哪个函数

动态多态:在运行期间确定的多态,父类指针或引用指向子类对象,在通过父类指针调用虚函数的时候,父类指针会通过对象里面的虚表指针找到虚表,然后在虚表中确定虚函数的地址进行调用(流程)

多态是指同一操作在不同对象上可以表现出不同的行为。在 C++ 中,多态通过函数重载和虚函数实现。

总结:父类指针或引用指向子类对象

class Animal {  
public:  virtual void sound() { // 虚函数  cout << "Animal sound" << endl;  }  
};  class Dog : public Animal {  
public:  void sound() override { // 重写基类的虚函数  override关键字明确表明将会重写父类的虚函数cout << "Bark" << endl;  }  
};  void makeSound(Animal* animal) {  animal->sound(); // 运行时多态  
}  Dog dog;  
makeSound(&dog); // 输出 "Bark"

函数重写:子类重新定义父类中有相同名称,返回值和参数的虚函数主要在继承关系中出现

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com