我对作用域应该如何在 C++ 中发挥作用有点困惑。现在似乎是在我的 else 语句中,我的 finalStr 被创建,然后在它离开范围后立即被销毁。
std::string finalStr;
char curLine[128];
if( BINARY_ASCII == 1 ) //ignore this case please :D
{
cdata = convertBSTRToByteArray(data , numChars);
}
else
{
bstrInputString = ( LPCWSTR ) data;
std::strcpy(curLine, bstrInputString.operator char *());
std::string finalStr(curLine);
cout << "data is: " << finalStr.data() << "\n"; //prints the right string
}
cout << "string is: " << finalStr.data() << "\n"; //prints nothing except "string is: "
我怎样才能解决这个问题?我相信我需要 else 语句中的复制构造函数来复制我的字符数组。有没有解决的办法?谢谢阅读..