无法为有抽象类型‘EventLoopThread’的对象分配内存
2019-07-07 11:19
3247 查看
无法为有抽象类型‘EventLoopThread’的对象分配内存
问题背景:
今天在写服务器的时候遇到了这样一个问题,一个子类对象无法分配内存,它继承的基类有两个纯虚函数图如下:
IRun.h:
class IRun0 { public: virtual void run0() = 0; virtual void run1() = 0; };
可以看到,
run0和
run1为两个纯虚函数。IRun0 的一个子类继承该类,如下:
EventLoopThread.h:
class EventLoopThread : public IRun0 { public: void run0(); };
此时报的错误是:
错误:无法为有抽象类型‘EventLoopThread’的对象分配内存
后来查找了半天,突然想到 IRun0 类中还声明了一个纯虚函数
run1,如果子类
EventLoopThread不对
run1进行重新声明的话,就直接把纯虚函数给继承了过来,所以这个时候该类就是一个抽象类型,无法为其分配内存,于是通过下面完美解决:
class EventLoopThread : public IRun0 { public: void run0(); void run1() {}; };
相关文章推荐
- 类是数据类型,对象是内存的具体分配
- PHP对象类型在内存中的分配
- PHP面向对象1.2对象类型在内存中的分配
- PHP对象类型在内存中的分配
- 对象类型在内存中的分配
- PHP对象类型在内存中的分配
- PHP对象类型在内存中的分配
- Unit02: 重载与缺省参数 、 内联与动态内存分配 、 引用 、 显式类型转换 、 类和对象
- 类是数据类型,对象是内存的具体分配
- String类型的面试题 内存分配 对象创建
- C++实现记录类型内存分配方式的包装类,使对象(或原始类型)只能通过new的方式实例化
- 构造方法与析构方法、对象类型在内存中的分配
- String对象内存分配和基本数据类型的默认值与初始化相关问题
- 类是数据类型,对象是内存的具体分配
- String intern()方法_对象内存分配不绝对性
- 浅析值类型与引用类型的内存分配[转载]
- 在已分配的内存中构造一个对象
- 6、Java类、对象、构造器、引用类型内存基本知识、引用类型值传递
- 基础回顾——Java对象创建、内存分配、访问定位概述
- Java基础-对象的内存分配与初始化