例如:
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/