![](/img/trans.png)
[英]error: conversion from ‘const char’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
[英]error: conversion from ‘Mstream’ to non-scalar type ‘std::string {aka std::basic_string<char>}’ requested
您能否帮我解决以下代码中的错误。
class Mstream{
unsigned int len;
char *str;
};
int main(){
Mstream m1;
std::string str=m1;// i see error at this statement
}
错误:
请求从“Mstream”转换为非标量类型“std::string {aka std::basic_string<char>}”
std::string
没有将Mstream
作为输入的构造函数或operator=
。 但是,它确实有一个以char*
和 size 作为输入的构造函数:
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;
}
无论哪种方式,在尝试转换为std::string
之前,请确保使用有效的char*
指针和长度值正确初始化Mstream
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.