110.纯虚函数

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class myclass
 5 {
 6 public:
 7     virtual void go()
 8     {
 9         cout << "123" << endl;
10     }
11 
12     //纯虚函数,有纯虚函数的类不能创建对象
13     virtual void run() = 0;
14 };
15 
16 class live
17 {
18 public:
19     //纯虚函数作为接口
20     //一旦继承了,必须实现虚函数的接口
21     virtual void life() = 0;
22     virtual void sleep() = 0;
23 };
24 
25 class people :public live
26 {
27 public:
28     virtual void think() = 0;
29 };
30 
31 class birdpeople :public people
32 {
33 public:
34     virtual void fly()
35     {
36         cout << "i can fly" << endl;
37     }
38     void life()
39     {
40         cout << "i can live every time" << endl;
41     }
42     void sleep()
43     {
44         cout << "i can sleep" << endl;
45     }
46     void think()
47     {
48         cout << " i can think" << endl;
49     }
50 };
51 
52 void main()
53 {
54     //myclass *p = new myclass;
55     //p->go();
56     birdpeople aa;
57     cin.get();
58 }

 

转载于:https://www.cnblogs.com/xiaochi/p/8612168.html

把你的示例代码写进去后出现了以下错误:C:\Users\Lenovo\AppData\Local\Temp\.arduinoIDE-unsaved202588-24832-1ncydzv.eozx\sketch_sep8a\sketch_sep8a.ino:9:89: error: invalid cast to abstract class type 'Adafruit_SH110X' Adafruit_SH110X display = Adafruit_SH110X(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); ^ In file included from C:\Users\Lenovo\AppData\Local\Temp\.arduinoIDE-unsaved202588-24832-1ncydzv.eozx\sketch_sep8a\sketch_sep8a.ino:1:0: d:\Documents\Arduino\libraries\Adafruit_SH110X/Adafruit_SH110X.h:73:7: note: because the following virtual functions are pure within 'Adafruit_SH110X': class Adafruit_SH110X : public Adafruit_GrayOLED { ^~~~~~~~~~~~~~~ d:\Documents\Arduino\libraries\Adafruit_SH110X/Adafruit_SH110X.h:85:11: note: virtual Adafruit_SH110X::~Adafruit_SH110X() virtual ~Adafruit_SH110X(void) = 0; ^ C:\Users\Lenovo\AppData\Local\Temp\.arduinoIDE-unsaved202588-24832-1ncydzv.eozx\sketch_sep8a\sketch_sep8a.ino:9:17: error: cannot declare variable 'display' to be of abstract type 'Adafruit_SH110X' Adafruit_SH110X display = Adafruit_SH110X(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); ^~~~~~~ C:\Users\Lenovo\AppData\Local\Temp\.arduinoIDE-unsaved202588-24832-1ncydzv.eozx\sketch_sep8a\sketch_sep8a.ino: In function 'void setup()': C:\Users\Lenovo\AppData\Local\Temp\.arduinoIDE-unsaved202588-24832-1ncydzv.eozx\sketch_sep8a\sketch_sep8a.ino:14:15: error: 'class Adafruit_SH110X' has no member named 'begin' if(!display.begin(0x3C, true)) { ^~~~~ exit status 1 Compilation error: invalid cast to abstract class type 'Adafruit_SH110X'
最新发布
09-09
277 CMenu::~CMenu() (gdb) s 279 } (gdb) s 277 CMenu::~CMenu() (gdb) s std::vector<CMenu::Item, std::allocator<CMenu::Item> >::~vector (this=0x7fff91c2aa00, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:414 414 ~vector() _GLIBCXX_NOEXCEPT (gdb) s 415 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, (gdb) s _Destroy<CMenu::Item*, CMenu::Item> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:415 415 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, (gdb) s _Destroy<CMenu::Item*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:126 126 std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: (gdb) finish Run till exit from #0 _Destroy<CMenu::Item*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:126 std::vector<CMenu::Item, std::allocator<CMenu::Item> >::~vector (this=0x7fff91c2aa00, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:414 414 ~vector() _GLIBCXX_NOEXCEPT (gdb) s 415 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, (gdb) s _Destroy<CMenu::Item*, CMenu::Item> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:415 415 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, (gdb) s _Destroy<CMenu::Item*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:126 126 std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: (gdb) finish Run till exit from #0 _Destroy<CMenu::Item*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:126 std::vector<CMenu::Item, std::allocator<CMenu::Item> >::~vector (this=0x7fff91c2aa00, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:416 416 _M_get_Tp_allocator()); } (gdb) s ~_Vector_base (this=0x7fff91c2aa00, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:161 161 - this->_M_impl._M_start); } (gdb) s 160 { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage (gdb) s _M_deallocate (this=<optimized out>, __n=4, __p=0x10e3a250) at /usr/include/c++/4.8.2/bits/stl_vector.h:173 173 if (__p) (gdb) s 174 _M_impl.deallocate(__p, __n); (gdb) s deallocate (this=<optimized out>, __p=0x10e3a250) at /usr/include/c++/4.8.2/ext/new_allocator.h:110 110 { ::operator delete(__p); } (gdb) s std::vector<CMenu::Item, std::allocator<CMenu::Item> >::~vector (this=0x7fff91c2aa00, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:416 416 _M_get_Tp_allocator()); } (gdb) s ~_Vector_base (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_vector.h:416 416 _M_get_Tp_allocator()); } (gdb) s _M_deallocate (this=<optimized out>, __n=<optimized out>, __p=0x10e3a250) at /usr/include/c++/4.8.2/bits/stl_vector.h:416 416 _M_get_Tp_allocator()); } (gdb) s deallocate (this=<optimized out>, __p=0x10e3a250) at /usr/include/c++/4.8.2/ext/new_allocator.h:110 110 { ::operator delete(__p); } (gdb) s 0x00007f336d1d62e0 in operator delete(void*) () from /lib64/libstdc++.so.6 (gdb) finish Run till exit from #0 0x00007f336d1d62e0 in operator delete(void*) () from /lib64/libstdc++.so.6 main (argc=<optimized out>, argv=<optimized out>) at Src/mkconfig.cpp:2161 2161 } (gdb) s 0x00007f336c8b5555 in __libc_start_main () from /lib64/libc.so.6 (gdb) s Single stepping until exit from function __libc_start_main, which has no line number information. pure virtual method called terminate called without an active exception Program received signal SIGABRT, Aborted. 0x00007f336c8c9387 in raise () from /lib64/libc.so.6
08-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值