如何在函数中使用类因子?

时间:2016-04-09 15:18:31

标签: c++

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)'?

1 个答案:

答案 0 :(得分:0)

你应该这样声明:

void Str::operator=(const Str& a)

赋值运算符需要引用其右操作数(因此&)并且不对其进行修改(因此const)。