不能实例化抽象类

妙笔花生 2014-02-27 07:22:32
有两个类,一个PrinterMonitor抽象类,一个MyPrinterMonitor具体类。在实例化的时候,告诉我不能实例化抽象类。现在正在学设计模式,如果C++不能实例化抽象类那要怎么实现所期望的功能呢?
我找了一些资料,里面的代码也是这么写的,但我的编译为什么出错?
代码如下:

//PrinterMonitor.h文件
#include "Printer.h"
#include"ChargeFormStrategy.h"
#include"Filter.h"
#include"Printer.h"
/**
* 打印机监视器抽象类
*/
class PrinterMonitor
{

public:
~PrinterMonitor();
virtual void startMonitor() =0;

virtual void monitor() =0;
virtual Printer getPrinter() =0;
protected:
PrinterMonitor();
private:

Printer printer;
ChargeFormStrategy chargeFormStrategy;

Filter filter;

};
#endif


//MyPrinterMonitor.h文件

///////////////////////////////////////////////////////////
// MyPrinterMonitor.h
// Implementation of the Class MyPrinterMonitor
// Created on: 20-二月-2014 15:36:11
// Original author: Administrator
///////////////////////////////////////////////////////////

#if !defined(EA_B1612F76_2F98_4fa4_A5C6_B3B703B4379C__INCLUDED_)
#define EA_B1612F76_2F98_4fa4_A5C6_B3B703B4379C__INCLUDED_

#include "PrinterMonitor.h"

class MyPrinterMonitor : public PrinterMonitor
{

public:
virtual ~MyPrinterMonitor();

MyPrinterMonitor();
void startMonitor();
private:

void monitor();};
#endif

//测试
int main(){
PrinterMonitor* myPtMonitor;


//此报错:error C2259: “MyPrinterMonitor”: 不能实例化抽象类
myPtMonitor= new MyPrinterMonitor();


return 0;
}
...全文
241 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
妙笔花生 2014-02-27
  • 打赏
  • 举报
回复
问题已经解决
qq_32934135 2021-07-01
  • 举报
回复
@妙笔花生 怎么解决的

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧