菜鸟求指导!!到底哪里错了! 要哭了!
#include<iostream>
using namespace std;
class Cow
{
char name[20];
char* hobby;
double weight;
public:
Cow();
Cow(const char *num, const char *ho, double wt);
Cow(const Cow &c);
~Cow();
Cow & operator=(const Cow &c);
void showCow() const;
};
Cow::Cow(const char *num, const char *ho, double wt)
{
strcpy_s(name, num);
hobby = (char*)ho;
weight = wt;
}
Cow::Cow(const Cow &c)
{
strcpy_s(name, c.name);
hobby = c.hobby;
weight = c.weight;
}
Cow & Cow::operator=(const Cow &c)
{
Cow o;
strcpy_s(o.name, c.name);
o.hobby = (char*)c.hobby;
o.weight = c.weight;
return o;
}
void Cow::showCow() const
{
cout << "name: " << name << "hobby: " << hobby << "weight: " << weight << endl;
}
int main()
{
Cow c = Cow("feifeit", "qiaodaima", 75);
c.showCow();
Cow w = Cow(c);
w.showCow();
Cow o = w;
o.showCow();
}
老是编译不成功! 求教!
[解决办法]
有几个比较大的问题:
1.析构函数没有实现。~Cow();
2.
Cow & Cow::operator=(const Cow &c)
{
Cow o;//没有定义无参构造函数这里肯定不对。而且为什么要返回对局部变量的引用?
strcpy_s(o.name, c.name);
o.hobby = (char*)c.hobby;//这里不对,对于指针,要用深拷贝,重新对hobby申请空间
o.weight = c.weight;
return o;
}
Cow(){} //无参构造函数的实现
~Cow(){} //析构函数的实现!
ps:编译错误是啥贴出来呗