C++实现反射机制解决方案

C++实现反射机制
讨论一下用C++怎么实现类似Java的反射机制? 有什么好点的方法?
------解决思路----------------------
引用:
讨论一下用C++怎么实现类似Java的反射机制? 有什么好点的方法?
              
                  c++

很遗憾,c++虽然不支援执行期的反射
但是编译期的反射能力很强大

C++不支援执行期间的反射,主要原因有两个
1 : 执行期间的反射会违反c++ "zero overhead"的原则
2 : 要在不违反zero overhead的情况下实现执行期的反射,据说并非
不可能,但是难度非常的高,c++社区没有这么多的资源实现这件相对来说
不太重要的事情

你想用反射做什么?让大家看看是否能提供另外一种(或n种)方法解决你的问题

引用:
C++ 不需要反射,C++ 的运行时类型识别和模板多态技术可以解决同样的问题。

当你的手上只有铁锤的时候,你会把所有的问题都当成钉子
------解决思路----------------------
引用:
对运行时动态产生的对象进行分析,获取有用信息(因为每次产生的对象可能包含不同的信息),打包发给server;对server返回的信息,产生一个对象给client。

我对windows编程不熟,如果只是要动态的判断是那个object发出的信息
可以靠最基础的多态来实现,没事尽量不要去碰RTTI
原因可以自己去翻阅effective c++ 3rd


class basicMessage
{
  public :
    virtual double connect_time() = 0;

    virtual std::string common_error() = 0;
    virtual std::string special_error() = 0;
    virtual int error_codes() = 0;
    
    //.....and so on

    ~virtual basicMessage() {}
};

class error_message : public basicMessage
{
  public :
    //...define your implementation
};

class whatever_message : public basicMessage
{
  public :
    //...define your implementation
};

//....


想办法设计出一个统一的界面,善用virtual就可以动态判断出正确的type
如果你的函数需要传入参数,可以读一读如何使用std::bind和std::function
弹性会提高不少