类的问题求教...
r从s派生出来的,那下面的代码错在哪里哦void some(s);
s * p=new r;
some(*p);
2012-05-08 17:30
2012-05-08 17:42
2012-05-09 00:32
2012-05-09 09:24
2012-05-11 10:08

2012-05-11 11:16
程序代码:#include <iostream.h>
class yang
{
public:
yang();
virtual ~yang();
yang(const yang&rhs);
int getage()const{return age;}
virtual yang* clone(){return new yang(*this);}
void setage(int t){age=t;}
virtual void say(){cout << "yang的say\n";}
protected:
int age;
};
yang::yang():
age(41)
{
cout << "yang构造函数\n";
}
yang::~yang()
{
cout << "yang析构函数\n";
}
yang::yang(const yang&rhs)
{
age=rhs.getage();
cout << "yang复制函数\n";
}
class lyl:public yang
{
public:
lyl();
lyl(const yang& rhs);
~lyl();
yang* clone(){return new lyl(*this);}
void say(){cout << "lyl的say\n";}
};
lyl::~lyl()
{
cout << "ly的析构函数\n";
}
lyl::lyl()
{
cout << "lyl的构造函数\n";
}
lyl::lyl(const yang &rhs):
yang(rhs)
{
cout << "lyl的复制函数\n";
}
int main()
{
lyl *p=new lyl;
yang *q=new yang;
p->say();
q=p->clone();
return 0;
}用这个虚复制构造函数是不是可以解决上面的这个问题哟?
2012-05-11 11:45
2012-05-11 11:47