【发布时间】:2020-01-23 11:09:07
【问题描述】:
在这样的代码中
#include <iostream>
#include <memory>
struct A {
int i;
A() {
std::cout << "A()" << std::endl;
}
~A() {
std::cout << "~A()" << std::endl;
}
};
void f(const A& a) {
std::cout << "f(A)" << std::endl;
}
std::unique_ptr<A> make_a() {
return std::make_unique<A>();
}
int main() {
f(*make_a());
}
是否保证A对象只有在f()被执行后才会被删除?
【问题讨论】:
-
在 30 秒内获得 5 个答案
-
@Amadeus:我们今天着火了。我的是第一个。我对此表示祝贺。
-
@Bathsheba 都是正确的 +1 对所有人:D
-
@Amadeus:今年圣诞节提前!
标签: c++ destructor temporary-objects full-expression