Closed yanminhui closed 5 years ago
OssClient 是一个指向实现 OssClientImpl 的类,其实现通过委托构造函数,最终在一个构造函数内 new OssClientImpl(...),在析构函数中 delete client_。这并 没有阻止用户对 OssClient 的对象进行拷贝,如果用户这么做是危险的。
OssClient
OssClientImpl
new OssClientImpl(...)
delete client_
比如现在我就遇到了该问题,我想拆分 OssClient 函数集,让用户面向资源的方式去操作,所以让 OssClient 做为配置选项传递资源管理器就撞上了。
class COssClient final { private: AlibabaCloud::OSS::OssClient proxy_; }; class COssObject { explicit COssObject(COssClient const& oss_client) : oss_client_(oss_client) {} private: COssClient oss_client_; }; class COssUpload : public COssObject { };
谢谢您的反馈。 您可以先在本地把 client_ 定义为shared_ptr类型, 同时把相关的地方也一起修改。
1.4.0 版本已经修改。
OssClient
是一个指向实现OssClientImpl
的类,其实现通过委托构造函数,最终在一个构造函数内new OssClientImpl(...)
,在析构函数中delete client_
。这并 没有阻止用户对OssClient
的对象进行拷贝,如果用户这么做是危险的。比如现在我就遇到了该问题,我想拆分
OssClient
函数集,让用户面向资源的方式去操作,所以让OssClient
做为配置选项传递资源管理器就撞上了。