当在其构造函数中初始化一个类的成员时,如何在多个点使用相同的临时值?
例子:
// for arbitrary T1, T2, T3
T2 foo(T1 const&);
T3 bar(T1 const&);
struct A {
T2 const t2;
T3 const t3;
A() : t2(foo(T1())), t3(bar(T1())) {}
};
这是一个非常简化的示例,但两者t2
和t3
都是根据T1
. 现在,如果我希望该对象在两个初始化中完全相同*我有一个问题,因为它没有名称。您是否知道如何在没有 C++11构造函数调用构造函数功能或添加调用的虚拟类的情况下解决此问题A(T1())
?
*像这样:
A(T1 const& t1) : t2(foo(t1)), t3(bar(t1)) {}
动机:如果T1()
实际上是类似的东西,对象的地址很重要,所以我必须在和new T()
中谈论同一个对象。t2
t3