在 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());
}
我正在尝试将 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
示例:.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());
}