即使在这里讨论了很多次,我也找不到关于我的特殊情况的确定性解释。 const
是否会延长 RefTest
临时对象的生命周期?下面的示例是否合法?
#include <iostream>
class RefTest
{
public:
RefTest(const std::string &input) : str(input) {}
~RefTest () {std::cout << "RefTest" << std::endl;}
private:
std::string str;
};
class Child
{
public:
Child (const RefTest &ref) : ref_m(ref) {}
~Child () {std::cout << "Test" << std::endl;}
private:
const RefTest &ref_m;
};
class Test
{
public:
Test () : child(RefTest("child")) {}//Will the temporary get destroyed here?
~Test () {std::cout << "Test" << std::endl;}
private:
const Child child;
};
int main ()
{
Test test;
}
test2
?我已经重写了我的初始示例,因为我没有充分考虑它。 - Mihai Todor