64,635
社区成员
发帖
与我相关
我的任务
分享
class A
{
private: //将copy constructor和copy assignment宣告为private,阻止copy
A(A const&);
A& operator=(A const&);
};
c++11,意思一样
class A
{
public:
A(A const&) = delete;
A& operator=(A const&) = delete;
};
第三种解法,交给object管理
c++11
class A
{
private:
//shared_ptr会负责"shared"资料
std::shared_ptr<int> data_;
}
//....
A a, b;
a = b; //a和b的data_指向同一笔资料
第三种解法的变形,利用stl的container
class A
{
private:
std::vector<int> data_; //自动处理copy和assignment的问题
}
方法一箩筐,哪一种解法好全看你的需求
除非是设计效能很吃紧的基础库
否则现在都不建议用raw pointer管理资源
方法三和四其实都是RAII的范畴
因为RAII的帮助,我自己写的代码已经好久好久
不曾出现过memory leak等memory相关的问题了
如果我不用和别人合作,就不用为memory leak等
鸟问题烦恼了