cocos2d-x节点(CCDataVisitor.h)API

来源:互联网 发布:现货黄金教学软件 编辑:程序博客网 时间:2024/05/21 22:59

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-x节点(CCDataVisitor.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

根据你的多态对象类型帮助你执行动作

///\cocos2d-x-3.0alpha0\cocos2dx\cocoa//根据你的多态对象类型帮助你执行动作#ifndef __CCDATAVISITOR_H__#define __CCDATAVISITOR_H__#include "platform/CCPlatformMacros.h"#include <string>NS_CC_BEGINclass Object;class Bool;class Integer;class Float;class Double;class String;class Array;class Dictionary;class Set;class Data;/** * @addtogroup data_structures * @{ *//** * 根据你的多态对象类型帮助你执行动作 * *用例: *  - 序列化的数据 *  - 打印漂亮的对象 *  - 安全读取 Array, Dictionary, Set  * * 用途: *  1. DataVisitor 的子类 *  2. 你需要执行的对象 overload visit() 方法 *  3. 在 visitObject() 处理其它对象 *  4. 使用 Object::acceptVisitor() 通过你的 visitor */class CC_DLL DataVisitor{public:    /**     * @js NA     * @lua NA     */    virtual ~DataVisitor() {}    /** 默认的方法,可以称为 non-overloaded 方法 and  不能识别的对象 */    virtual void visitObject(const Object *p) = 0;    virtual void visit(const Bool *p);    virtual void visit(const Integer *p);    virtual void visit(const Float *p);    virtual void visit(const Double *p);    virtual void visit(const String *p);    virtual void visit(const Array *p);    virtual void visit(const Dictionary *p);    virtual void visit(const Set *p);    virtual void visit(const Data *p);};class CC_DLL PrettyPrinter : public DataVisitor{public:    PrettyPrinter(int indentLevel = 0);        virtual void clear();    virtual std::string getResult();        virtual void visitObject(const Object *p);    virtual void visit(const Bool * p);    virtual void visit(const Integer *p);    virtual void visit(const Float *p);    virtual void visit(const Double *p);    virtual void visit(const String *p);    virtual void visit(const Array *p);    virtual void visit(const Dictionary *p);    virtual void visit(const Set *p);    virtual void visit(const Data *p);private:    void setIndentLevel(int indentLevel);    int _indentLevel;    std::string _indentStr;    std::string _result;};// end of data_structure group/// @}NS_CC_END#endif // __CCDATAVISITOR_H__


原创粉丝点击