我正在尝试完成我的实验室,但是我不知道如何为字符串分配内存。所以我不断收到错误
warning: ‘_name’ is used uninitialized in this function [-Wuninitialized]
我也不明白我的getline
行是否正确。
std::istream& operator>>(std::istream& is, Grade& RO){
int _mark;
char* _name;
std::cout<<"Subject name: ";
is.ignore();
is.getline(_name, (strlen(_name) + 1));
std::cout<<"Mark :";
is>> _mark;
RO=Grade(_name, _mark);
return is;
}
答案 0 :(得分:0)
好的@Jessica,(一般问题和一些信息)我想,
Grade
是一个包含两个数据成员的类:int mark
和string name
。并且您希望重载插入运算符 >>
以填充这些值。
(我建议你把所有cout
表达式都留在这个函数之外。)这是一个可能的实现:
istream& operator>> (istream& is, Grade& RO){
// declare local variables to insert the input values
int mark;
string name;
// extract values from input stream
is >> mark >> name;
// assuming you have member functions that set values for the object RO
RO.set_mark(mark);
RO.set_name(name);
return is;
}