是否可以在C++中動態分配一個臨時變量?
我想要做這樣的事情:是否可以在C++中動態分配一個臨時變量?
#include <iostream>
#include <string>
std::string* foo()
{
std::string ret("foo");
return new std::string(ret);
}
int main()
{
std::string *str = foo();
std::cout << *str << std::endl;
return 0;
}
此代碼的工作,但問題是我爲了回擊一個指針來創建另一個字符串。有沒有辦法將我的臨時/本地變量放入堆中而不重新創建其他對象?
這裏是我會怎麼做一個例證:
std::string* foo()
{
std::string ret("foo");
return new ret; // This code doesn't work, it is just an illustration
}
'std :: string foo(){return「foo」; }'?該副本都保證不會被刪除。 – 2012-02-15 02:48:32
+1給詹姆斯,但是要避免'除了'外,對於我們這些非英語母語人士來說,這是令人困惑的。 – 2012-02-15 02:55:33
我的代碼比這複雜得多,指針約束是不可避免的。 – klefevre 2012-02-15 02:59:44