请帮助我解决以下代码中的错误。
private int[] movieIDs = new int[MAXIMUM_RECORDS];
private double[] moviePrices = new double[MAXIMUM_RECORDS];
错误:
请求从“ Mstream”转换为非标量类型“ std :: string {aka std :: basic_string
}”
答案 0 :(得分:0)
std::string
没有使用operator=
作为输入的构造函数或Mstream
。但是,它确实具有一个以char*
和大小作为输入的构造函数:
int main(){
Mstream m1;
std::string str(m1.str, m1.len);
}
或者,您可以将std::string
转换运算符添加到Mstream
,然后可以将Mstream
分配给std::string
:
class Mstream{
unsigned int len;
char *str;
operator std::string() const { return std::string(str, len); }
};
int main(){
Mstream m1;
std::string str = m1;
}
无论哪种方式,请确保在尝试转换为Mstream
之前,先使用有效的char*
指针和长度值 正确初始化std::string
。