簡體   English   中英

C ++臨時對象的調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM