void Str::operator=(char* a)
{
delete[] str;
len = strlen(a);
str = new char[len + 1];
strcpy (str, a);
}
void Str::operator=(class Str a)
{
delete[] str;
len = strlen(a.str);
str = new char[len + 1];
strcpy(str, a.str);
}
这是Str类。我在Str'中定义了' operator =(char * a),我可以在' main.cpp'中使用第一个。像这样:
Str a("Icecream");
a = "Cake\n";
运行良好。
但我如何使用' operator =(class Str a)' ?
我试过这样:
Str c("Hamburger")l
c = a;
我希望c有a的信息。我,e,c不再是汉堡包信息。 c是Cake。
但是当我编译这段代码时,c确实有一个但是调用错误的信息。
我如何使用' operator =(类Str a)'?
答案 0 :(得分:0)
你应该这样声明:
void Str::operator=(const Str& a)
赋值运算符需要引用其右操作数(因此&
)并且不对其进行修改(因此const
)。