你自己写析构函数,想怎么就怎么呀?
struct ResourceItem;
struct ResourcePool
{
std::unique_ptr<ResourceItem> Get();
void Return(std::unique_ptr<ResourceItem> x);
};
struct A
{
A(ResourcePool& aPool)
: _pool(aPool)
, _resource(std::move(aPool.Get()))
{}
~A()
{
_pool.Return(std::move(_resource));
}
ResourcePool& _pool;
std::unique_ptr<ResourceItem> _resource;
};
【 在 bihai 的大作中提到: 】
: 代码库里有个类A,构造函数要传入一个资源R。但是,传入的资源挺有用的。有的时候想销毁A的时候取出R,再次使用在另一个类B中。但是咋做呢?A的析构函数没有返回值啊。
: 那么,就得写一个函数,把R拿出来,然后把A标记为不能用了。
: 有没有办法给C++标准里加入不同的析构函数,来获取原来构造时传入的资源?
: ...................
--
FROM 182.150.115.*