100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++抽象基类和纯虚成员函数

C++抽象基类和纯虚成员函数

时间:2023-01-22 20:32:44

相关推荐

C++抽象基类和纯虚成员函数

公共接口是指一系列成员函数的集合,支持该接口的类必须以合适的方式重新定义这些成员函数,否则就无法创建对象。在C++中,可以通过抽象基类来实现公共接口。

纯虚函数

纯虚成员函数的声明语法如下:

virtual 函数返回类型 函数名(函数参数) = 0;

纯虚成员函数没有函数体,只有函数声明,在纯虚函数声明结尾加上“=0”表明此函数为纯虚成员函数。

抽象基类

包含纯虚成员函数的类即为抽象基类,之所以说它抽象,那是因为它无法实例化,也即无法用于创建对象。

纯虚成员函数可以被派生类继承,如果派生类不重新定义抽象基类中的所有(有多个则要重新定义多个)纯虚成员函数,则派生类同样会成为抽象基类,因而也不能用于创建对象。

只有类中的虚函数才能被声明为纯虚成员函数,普通成员函数和顶层函数均不能声明为纯虚成员函数。

抽象基类可以用于实现公共接口,在抽象基类中声明的纯虚成员函数,派生类如果想要能够创建对象,则必须全部重新定义这些纯虚成员函数。

#include<iostream>using namespace std;class base{public :base(){x = 0;}base(int a){x = a;}virtual void display() = 0;int getx(){return x;}private:int x;};class derived1 : public base{public:derived1(int a){ y = a;}private:int y;};class derived2 : public base{public:derived2(int a, int b):base(a){ z = b;}void display(){cout<<getx()<<" "<<z<<endl;}private:int z;}int main(){base b; //compile errorderived1 d1(5); //compile errorderived2 d2(5,6);d2.display();return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。