纯虚函数和抽象类

想要在基类中定义虚函数实现多态,但是有不希望这个基类可以实例化,可以将虚函数定义为纯虚函数。

格式如下:
virtual 返回值类型 函数名() = 0;
例:
virtual int fun() = 0;

纯虚函数的特性:

1.包含纯虚函数的类称为抽象类。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。

#include <iostream>
using namespace std;

class Person
{
public:
    // 定义纯虚函数
    virtual void print() = 0;
};

class Student : public Person
{
public:
    void print()
    {
        cout << "student" << endl;
    }
};

int main(int argc, char *argv[])
{
    Person *p = new Student;
    p->print();

    return 1;
}

输出:
student

 

posted @ 2023-07-11 14:50  jason8826  阅读(27)  评论(0)    收藏  举报