我自己写了一个struct a,然后设立一个CArray<a, a>.最后在用CArray::Add函数添加时,系统报错说:
error C2664: 'Add' : cannot convert parameter 1 from 'struct a' to 'struct a'
        No copy constructor available for struct 'a'难道我必须用带拷贝构造函数的class而不能用普通的struct么?

解决方案 »

  1.   

    建议1:用指针CArray<a*, a*>或者引用!
    建议2:增加拷贝构造函数和无参构造函数!
      

  2.   

    报这个错误的原因,是因为你的struct a这个结构里,用到了特殊的变量,比如一个类变量,这个类没有拷贝构造函数,所以不支持。
    一个方法是如同楼上所说,用指针。CArray<a*,a*>
    要么就为这些类写上拷贝构造函数。可能在后面的开发中还要重载等于操作符等。
    或者对这个结构增加一个拷贝构造函数。
      

  3.   

    果然如楼上所说,我的struct里用了CStringArray。高手啊,谢了。