程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++設計模式之訪客模式

c++設計模式之訪客模式

編輯:關於C++

c++ visitor設計模式:關於訪問者模式,語言表達總是太繞,不如一個具體的實現:

#include
#include
#include
#include
using std::cout;
using std::endl;

//前向聲明,訪問者
class Visitor;

//被訪問的抽象類,只有一個接口,用來接受訪問者
class Object
{
public:
    virtual void accept(Visitor&v) = 0;
};

//具體的被訪問的對象,學生。
class StudentA :public Object
{
    std::string name;
    int score;
public:
    StudentA(std::string name_);
    int getScore();
    std::string getName()
    {
        return name;
    }
    void setScore(int num);
    virtual void accept(Visitor&v);
};

//抽象訪問者,只有一個接口,訪問.
class Visitor
{
public:
    virtual void visit(Object* obj)=0;

};

//具體的訪問者一,班主任,實現訪問(學生並給學分)
class ClassLeader :public Visitor
{
public:
    virtual void visit(Object* obj);
};
//具體的訪問者二,校長,實現訪問(學生並批評不及格的學生)
class HeadMaster :public Visitor
{
public:
    virtual void visit(Object* obj);
};

//隨機分數生成器
class ScoreGen
{
public:
    static int getScore()
    {
        auto tp=std::chrono::system_clock().now();
        auto d=tp.time_since_epoch();
        int score_temp = d.count() % 100;
        return score_temp;
    }
};

int main()
{
    std::vector
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved