57 lines
808 B
C++
57 lines
808 B
C++
#ifndef __ELEMENT_H__
|
||
#define __ELEMENT_H__
|
||
|
||
#include "Visitor.h"
|
||
#include <iostream>
|
||
using namespace std;
|
||
|
||
// 抽象元素
|
||
class Element
|
||
{
|
||
public:
|
||
Element(){};
|
||
virtual ~Element(){}
|
||
virtual void accept(Visitor*) = 0;
|
||
void setPrice(int iPrice){
|
||
this->price = iPrice;
|
||
}
|
||
int getPrice(){
|
||
return this->price;
|
||
}
|
||
void setNum(int iNum){
|
||
this->num = iNum;
|
||
}
|
||
int getNum(){
|
||
return num;
|
||
}
|
||
void setName(string iName){
|
||
this->name = iName;
|
||
}
|
||
string getName(){
|
||
return this->name;
|
||
}
|
||
private:
|
||
int price;
|
||
int num;
|
||
string name;
|
||
};
|
||
|
||
// 具体元素:Apple
|
||
class Apple :public Element
|
||
{
|
||
public:
|
||
Apple();
|
||
Apple(string name, int price);
|
||
void accept(Visitor*);
|
||
};
|
||
|
||
// 具体元素:Book
|
||
class Book :public Element
|
||
{
|
||
public:
|
||
Book();
|
||
Book(string name, int price);
|
||
void accept(Visitor*);
|
||
};
|
||
|
||
#endif |