不能实例化抽象类
妙笔花生 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;
}