VC6中我定义了一个class,并生成了一个对象,现在想通过代码将该对象的所有元素按照当时定义的顺序复制到一段缓存里,我现在是用的memcpy一个一个拷贝过去的,但由于成员数量比较多,很麻烦,有没有简单一些的方法啊?class

解决方案 »

  1.   

    能说的详细一些么?
    比如该类class CCOP
    {
      int a;
      double b;
      char c[4]
    }CCOP tm;
    char buff[256];
    怎么将tm中的a,b,c按照定义的顺序依次复制到tm中去??
      

  2.   

    你可以直接把对象地址指向那块内存复制一下啊,大小用sizeof获取,C/C++方便的就是指针操作了。
      

  3.   

    类里有指针时不能直接复制
    class CCOP
    {
    public:
      int a;
      double b;
      char c[4];public:
      CCOP()
      {
        a = 0;
        b = 0;
        memset(c, 0, sizeof(c));
      }  CCOP(CCOP &other)
      {
        operator = (other);
      }public:
      void operator = (CCOP &other)
      {
        a = other.a;
        b = other.b;
        memcpy(c, other.c, sizeof(c));
      }
    };
    //测试代码  CCOP tm1;
      tm1.b = 2.0;
      CCOP tm2 = tm1;
      ASSERT(tm2.b == 2.0);