class CAV is not the methed CAV::CAV(CAV& other).
CAV类没有自我复制功能.

解决方案 »

  1.   

    跟自我复制有什么关系呢,cav不就是个对象嘛,如果调用CSecond(cav),也就等与把cav传给了CFirst(cav),这个时候要自我复制吗?难道为了实现上述构造函数,我还要修改类CAV不可吗?
      

  2.   

    你直接写
    CFirst a(pcav);//pcav 是CAV的指针
    这样会出错吗?如果有问题,说明CAV 、CFirst这两个类的代码有问题
      

  3.   

    是的。自我复制是指:
      
    CAV cav1;
    CAV cav2(cav1);
      

  4.   

    CAV需要缺省构造函数,就是没有参数,没有返回值的构造函数
      

  5.   

    是不是你的CAV类里面有什么静态的成员变量什么的,那样的话编译器就没有办法给你合成一个默认的构造函数了
      

  6.   

    CFirst ,CAV类是没有问题的,已经在软件中很稳定地使用了,我现在只是想扩展一下CFirst的功能,所以派生了一个类,没想到初始化CFirst会出问题啊
    我这里只传递了一个参数会这么麻烦吗?
      

  7.   

    我这里是一个已经创建好的对象cav,只是作为一个参数,一个创建好的对象干嘛还要调用构造函数?难道没有什么解决的办法?
      

  8.   

    我试了一下,编译没有问题。估计是CAV在你的CSecond类中没有声明
      

  9.   

    jjhou(侯俊杰) ,呵呵,假冒名人可不好哦
      

  10.   

    没声明的错误提示不应该是这样的,而且我那两个类都在一个.h文件里声明的,CFirst(CAV *cav)都没有问题,CSecond为什么就会有问题呢?to jjhou你是模仿我上面的声明编译的吗?麻烦你把所有的代码都贴出来,我看看是怎么回事,多谢!
      

  11.   

    问题找到了,是在CSecond 的public成员声明中这样声明CAV* m_cav1, m_cav2;造成的错误,分开声明就对了