クラスがあります
class Cow{
char name[20];
char* hobby;
double weight;
public:
[..]
Cow & operator=(const Cow &c);
[..]
};
operator=
そして、メソッドの定義をどのように書くのか疑問に思っています。-に等しい定義を書きました
Cow & Cow::operator=(const Cow &c){
if(this==&c)
return *this;
delete [] hobby;
hobby=new char [strlen(c.hobby)+1];
weight=c.weight;
strncpy(name,c.name,20);
return *this;
}
しかし、「Philip Maciejowsky」のような名前[20]がすでに作成されていて、私がそれに「Adam」と言ったらどうなるでしょうか。operator =(...)の後、名前は「adamlipMaciejowsky」に等しくなりますか?そのように上書きされた場合の修正方法は?