在 C++ 中将 const std::string 分配给 std::string

Assigning const std::string to std::string in c++

我正在尝试将 const std::string 变量分配给 std::string variable.But,出现一些与内存相关的错误。代码如下:

#include <iostream>
#include <string>

using namespace std;
std::string sender1;

std::string fun()
{
      const std::string sender = "hi";
       sender1.assign(sender);
      
}

int main()
{
    fun();
    cout<<sender1<<endl;
    return 0;   
}

您在 fun 中忘记了一个 return。如果您像这样更改该功能:

std::string fun()
{
    const std::string sender = "hi";
    sender1.assign(sender);
    return sender;
}

然后代码将编译并且 运行 没问题。

终于找到答案了

我们需要全局声明一个char *。然后使用 const_cast 我们可以将常量字符串转换为 char 并赋值。

示例:.h 文件中:

char * abc;

在 .cc 文件中:

func()
{
 const std::string cde = "Hello";
 //now to use this constant string in another function,we use const cast and 
 //assign it to abc like below
 abc = const_cast <char *>(cde.c_str());
}