首页 > 编程知识 正文

纯虚函数和虚函数,虚函数和纯虚函数的区别和作用

时间:2023-05-05 19:15:39 阅读:255394 作者:4554

纯虚函数可以有函数体,但是有了函数体之后还是纯虚函数,类依旧是抽象类,不能实例化。

如下代码:

#include<iostream>using namespace std;class test{public: test(); test(int a); virtual ~test(); virtual int get();private: int a;};test::test(){ a = 0;}test::test(int a):a(a){}test::~test(){}int test::get(){ return a;}int main(){ test t1; cout<<t1.get()<<endl; return 0;}

上述代码可以通过编译正常运行,但是将virtual int get();改成virtual int get() = 0;之后再编译,就会出现如下错误:

virtual.cpp: In function ‘int main()’:
virtual.cpp:38:10: error: cannot declare variable ‘t1’ to be of abstract type ‘test’
     test t1;
          ^~
virtual.cpp:5:7: note:   because the following virtual functions are pure within ‘test’:
 class test
       ^~~~
virtual.cpp:31:5: note:     virtual int test::get()
 int test::get()
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。