gpt4 book ai didi

C++ - 将 null 分配给 std::string

转载 作者:IT老高 更新时间:2023-10-28 12:34:03 26 4
gpt4 key购买 nike

我正在自学 C++。我有以下代码,但它给出了错误。

#include <iostream>
#include <string>
using namespace std;


int setvalue(const char * value)
{
string mValue;
if(value!=0)
{
mValue=value;
}
else
{
mValue=0;
}
}

int main ()
{
const char* value = 0;
setvalue(value);

cin.get();
return 0;
}

所以想创建一个接受 char 指针的函数,并且我想将指针传递给它。该函数将指针分配给其成员变量。我故意传递一个空指针。以下是我得到的错误:

 D:\CPP\TestCP.cpp In function `int setvalue(const char*)': 

note C:\Dev-Cpp\include\c++\3.4.2\bits\basic_string.h:422 candidates are: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]

note C:\Dev-Cpp\include\c++\3.4.2\bits\basic_string.h:422 std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]

note C:\Dev-Cpp\include\c++\3.4.2\bits\basic_string.h:422 std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]

它基本上是在提示 line: mValue=0;

为什么提示这条线?我不能将空值分配给字符串?

最佳答案

I can't assign a null to a String?

没有。 std::string 不是指针类型;它不能设为“null”。它不能表示没有值,这是用空指针来表示的。

可以将其设置为 empty,方法是为其分配一个空字符串(s = ""s = std::string()) 或通过清除它 (s.clear())。

关于C++ - 将 null 分配给 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617552/

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