如上图所示,这样的话 会出错,提示error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'.
坛内有其他兄弟遇到过类似情况,帖子地址:http://bbs.csdn.net/topics/290010922基本和我遇到一样,我该如何解决这个问题,小弟看上述帖子,修改了还是有问题,希望哪位大牛能够助小弟一把。
 
还有这样设计肯定不好,但是由于程序特殊原因。如果能这样我想尽量这样做。实在不行 只能另想他法了。还有问一句,遇到这样的情况,最好怎样来设计表结构呢?vectormfc

解决方案 »

  1.   

    你需要为带有模板类变量的结构体增加拷贝构造函数,并重载=操作符。否则将其放入容器中,再进行Get和Set都是不行的
      

  2.   

    你是否在进行结构体赋值或者容器内对象Set或Get是出现错误提示?
      

  3.   

    由于它vector是可变长的,这样我把vector<B> VB  改成vector<B>* VB  那么结构体里边只存指针,编译好像没问题,但是会不会程序有问题?
      

  4.   

    对,就是在pushback时 出问题。 应该和另一个帖子里一样
      

  5.   

    vector<B> VB  改成vector<B* >VB  
    应该这样改程序退出记得释放就好了!
      

  6.   

    这就要看你的代码逻辑了。在进行Set/Get或者复制时,你是进行深拷贝还是浅拷贝。如果只是指针赋值,那意味着所有的对象使用同一份空间内容,这是不是你需要的效果,那就不知道了。
    另外,你的这个结构比较复杂,问题不仅仅在vector上,后面的CStringArray也会面临同样的问题。
      

  7.   

    嗯,版主分析的刚好就是我遇到的问题,非常精辟!
    我就是想把所有信息都装在结构体A里边,这样我就很容易使用了。
    程序里边的目的就是为了在内存中只存在一份拷贝。
    这样防止数据紊乱。 感谢版主,感谢sha_jinhao 兄 在我一连三个帖子中的回复。非常感谢!