下面是程序内容typedef  struct tagCARDSNUMBER
{ public :
int nOrder;
int nNumber;
} CardsNumber,*pCardsNumber;typedef CList<CardsNumber,CardsNumber&> CCardsNumberList;
typedef CList<c1,c1&> pa;
CCardsNumberList fun(pa x)
{
 CCardNumberList *p = new CCardNumberList;
 {
 //do somthing
 }
 return *p
 }
 下面是编译错误,郁闷啊。帮帮忙吧。该怎么传递啊
 z\utils.h(65) : error C2558: class 'CList<struct tagCARDSNUMBER,struct tagCARDSNUMBER &>' : no copy constructor available
D:\project\Ddz\Method.cpp(289) : error C2440: 'initializing' : cannot convert from 'class CList<struct tagCARDSNUMBER,struct tagCARDSNUMBER &>' to 'class CList<struct tagCARDSNUMBER,struct tagCARDSNUMBER &>'
        No copy constructor available for class 'CList<struct tagCARDSNUMBER,struct tagCARDSNUMBER &>'
Error executing cl.exe.Ddz.exe - 2 error(s), 0 warning(s)

解决方案 »

  1.   

    typedef  struct tagCARDSNUMBER

    int nOrder;
    int nNumber;
    } CardsNumber,*pCardsNumber;
    试试。
    因为你没有重载CardsNumber的&操作符。
      

  2.   

    typedef CList<CardsNumber,CardsNumber&> CCardsNumberList;
    typedef CList<c1,c1&> pa;
    改为
    typedef CList<CardsNumber,CardsNumber> CCardsNumberList;
    typedef CList<c1,c1> pa;以上仅作参考,没有打开VC试
      

  3.   

    struct里要public干嘛
    不要用引用,改为传值方式,或是用指针看看
      

  4.   

    不用public,不用&符号。
    改成shilong(星矢の诗龙) 说的,仍然不对啊。
    郁闷了