[英]C++ Call function of a temporary object
例如:
private:
std::vector<std::string> _content;
public:
Document (const std::string& path) :_content(FileIO().read(path)) { }
是否可以使用“臨時” Object ( FileIO() )
直接調用函數( read() )
Object ( FileIO() )
? 我問,因為它看起來很方便,但我以前從未見過這樣的代碼。 只是想知道這是否是“有效的”C ++代碼,而不是一些奇怪的反模式或性能“不行”。
臨時的生命周期持續到_content
的構造函數返回,因此它是有效且安全的。
沒關系。 path
是明確定義的,匿名臨時在成員_content
初始化期間有效。
您應該注意,如果FileIO().read(path)
拋出異常FileIO().read(path)
則不會調用~Document()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.