c++中的抽象类
Posted uestclr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中的抽象类相关的知识,希望对你有一定的参考价值。
在面向对象的编程过程中,有些类的创建是毫无意义的,它的概念是抽象的,比如动物,电器,人这样类,比如到商店给店员说我要买一台电器。编程过程中可以将这些类设置为抽象类,以防止它们创建对象。
只要一个类中出现纯虚函数,那么这个类就是抽象类。
Class Animal
Public:
virtual void show() = 0;//纯虚函数的表达
;
抽象类除了不能实例化之外,和其他类没有任何区别。
/**/
#include <iostream>
#include <string>
using namespace std;
class Animal
string name;
int age;
public:
Animal(string name = "",int age=0):name(name),age(age)
//cout << ""
/*纯虚函数*/
virtual void fun() = 0;
/*普通函数*/
void show()
cout << name<<":"<<age<<endl;
;
class Dog:public Animal
public:
void fun()
cout << "dog fun()"<<endl;
Dog(string name = "",int age = 0):
Animal(name,age)
;
int main()
//Animal a;
Dog dog("haha",6);//子类也会有纯虚函数,子类也是抽象类,所以子类必须实现抽象类
dog.show();
值得注意的是,在继承一个抽象类中,如果不在派生类中重写这个方法的话,那么派生类依然会有父类的纯虚函数,此时派生类还是一个抽象类。所以要使得派生类可以创建对象,则要重写父类的纯虚函数。
纯抽象类:除了构造函数和析构函数之外的其他函数都是纯虚函数,这样的类就是纯抽象类。有意思的是,学过java的人其实应该比较清楚,java中不支持多继承,但是java却通过接口的方式实现了多继承所要达到的目的。java中的接口其实本质上就是c++中的纯抽象类。
以上是关于c++中的抽象类的主要内容,如果未能解决你的问题,请参考以下文章