1

我为许多类重载了 >> 运算符,但在这种情况下有所不同。我一般不能在 operator's function 中设置类成员。我需要使用 char*-argument 构造函数来设置对象,但是当我这样做时,程序停止工作。你可以看到下面的功能:

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

3 回答 3

2

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

于 2012-08-15T07:24:43.290 回答
1
char *str;
stream>>str;

调用未定义的行为,因为您没有为str. 要么分配内存,要么使用 astd::string代替(首选)。

于 2012-08-15T07:24:51.040 回答
1

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

于 2012-08-15T07:25:11.807 回答