例如:
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().