使用>>设置对象操作者

时间:2012-08-15 07:22:28

标签: c++ operator-overloading

我已超载>>许多类的运算符,但在这种情况下有所不同。我通常不能在运算符的函数中设置类成员。我需要使用char * -argument构造函数来设置对象,但是当我这样做时,程序停止工作。您可以看到以下功能:

istream & operator >>(istream &stream ,Big& b)
{
    char *str;
    stream>>str;
    b=Big(str);
    return stream;
}

3 个答案:

答案 0 :(得分:2)

您尝试将输入读入未初始化的指针。请改用std::string

答案 1 :(得分:1)

char *str;
stream>>str;

调用未定义的行为,因为您尚未为str分配内存。分配内存,或使用std::string代替(首选)。

答案 2 :(得分:1)

char *str无法保存stream的流式传输结果(除非您正在阅读指针,但我怀疑这是您的意图)。您可能需要std::string str