例如:
private:
std::vector<std::string> _content;
public:
Document (const std::string& path) :_content(FileIO().read(path)) { }
使用“临时”( read() )
直接调用函数Object ( FileIO() )
是否可以?
我问,因为它看起来很方便,但我以前从未见过这样的代码。只是想知道这是否是“有效的”C ++代码,而不是一些奇怪的反模式或性能“不能”。
答案 0 :(得分:4)
临时的生命周期持续到_content
的构造函数返回,因此它是有效且安全的。
答案 1 :(得分:4)
没关系。 public abstract class DashboardItem
{
public int X
{
get { return 100; }
}
public int Y
{
get { return 100; }
}
}
定义明确,匿名临时在成员path
初始化期间有效。
您应该注意,如果_content
引发异常,则FileIO().read(path)
将不被调用。