临时对象的 C++ 调用函数

标签 c++ function object call temporary

例如:

private:
    std::vector<std::string> _content;
public:
    Document (const std::string& path) :_content(FileIO().read(path)) { }

直接使用“临时”对象 (FileIO()) 调用函数 ( read() ) 可以吗? 我问是因为它看起来很方便,但我以前从未见过这样的代码。只是想知道这是否是“有效的”C++ 代码,而不是一些奇怪的反模式或性能“不行不行”。

最佳答案

没关系。 path定义明确,匿名临时成员在成员_content初始化期间有效。

您应该注意,如果 FileIO().read(path) 抛出异常,则 ~Document()不会打电话。

关于临时对象的 C++ 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32718518/

相关文章:

Javascript:从函数返回值的最佳方法/实践是什么?

javascript - Javascript 中的全局变量生命周期

c++ - 如何高效复制istringstream?

c++ - 从 txt 文件向 char* var 添加值

javascript - 在函数内部调用函数 - 问题 :function not executing

Python函数导入文件名和城市名称

c++ - 删除链表中的节点 - 段错误

c++ - 从 C++ 中的函数发送和返回 2D 动态结构

javascript - 使用 Object.keys() 与 Object.values() 从对象属性创建数组

javascript - 更好的 jQuery 对象过滤