主页 > 游戏开发  > 

《c++》纯虚函数和抽象类


 

在C++中,纯虚函数和抽象类是面向对象编程中的重要概念,用于实现多态性和接口定义

1.纯虚函数(Pure Virtual Function): 纯虚函数是在基类中声明的虚函数,但没有提供实现。它们以关键字声明,并在函数声明的末尾加上来指示它是一个纯虚函数。virtual= 0纯虚函数的存在使得基类成为抽象类,无法实例化对象。派生类必须提供纯虚函数的实现才能实例化对象。纯虚函数用于定义接口,要求派生类提供特定的行为实现。 class Base { public: virtual void show() = 0; // 纯虚函数 }; class Derived : public Base { public: void show() override { cout << "Derived class implementation" << endl; } }; 2.抽象类(Abstract Class): 包含纯虚函数的类被称为抽象类。抽象类不能被实例化,即不能创建抽象类的对象。但可以声明抽象类的指针和引用。抽象类用于定义通用接口和行为,要求派生类提供具体的实现。 class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Circle : public Shape { public: void draw() override { cout << "Drawing a circle" << endl; } }; class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } }; 3.完整案例解析 #include <iostream> using namespace std; //纯虚函数和抽象类 class Base { public: //纯虚函数 //只要有一个纯虚函数,这个类称为抽象类 //抽象类特点: //1.抽象类不能实例化对象 //2.抽象类的子类 必须要重写父类中的纯虚函数,否则也属于抽象类 virtual void func() = 0; }; class Son:public Base { public: virtual void func() { cout << "Son::func()" << endl; } }; void test01() { //Base b; // 报错,不能实例化抽象类 //Son s;子类必须重写父类中的纯虚函数,否则无法实例化对象 Base *p = new Son; // 指针指向子类对象,可以调用子类中的方法 p->func(); // 调用子类中的方法 } int main() { test01(); return 0; }

标签:

《c++》纯虚函数和抽象类由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“《c++》纯虚函数和抽象类