gpt4 book ai didi

c++ - 错误:请求从 ‘Mstream’转换为非标量类型 ‘std::string {aka std::basic_string}’

转载 作者:行者123 更新时间:2023-12-03 07:04:12 25 4
gpt4 key购买 nike

您能否帮助我解决以下代码中的错误。

class Mstream{
unsigned int len;
char *str;
};

int main(){
Mstream m1;
std::string str=m1;// i see error at this statement
}

错误:

conversion from ‘Mstream’ to non-scalar type ‘std::string {aka std::basic_string<char>}’ requested

最佳答案

std::string没有使用operator=作为输入的构造函数或Mstream。但是,它确实具有一个将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;
}

无论哪种方式,在尝试转换为 Mstream之前,请确保使用有效的 char*指针和长度值正确初始化了 std::string

关于c++ - 错误:请求从 ‘Mstream’转换为非标量类型 ‘std::string {aka std::basic_string<char>}’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58250607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com