码迷,mamicode.com
首页 > 编程语言 > 详细

c++不自动生成相关函数比如赋值、拷贝函数

时间:2017-02-02 19:13:07      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:amp   color   val   let   默认   std   blog   delete   通过   

默认情况下,如果没有明确声明某些函数比如赋值、拷贝函数,c++会自动生成这些函数,通常他们是对成员进行by-value拷贝,有些时候,赋值、拷贝对象并无什么意义或者不合理,比如对于socket或者thread而言,这种情况下,可以明确通过指定=delete告知编译器不要自动生成它们。如下所示:

class thread_guard
{
    std::thread& t;
public:
     explicit thread_guard(std::thread& t_):
    t(t_)
    {}
    ~thread_guard()
    {
        if(t.joinable())
        {
            t.join();
        }
    }
     thread_guard(thread_guard const&)=delete;
     thread_guard& operator=(thread_guard const&)=delete;
};

 

c++不自动生成相关函数比如赋值、拷贝函数

标签:amp   color   val   let   默认   std   blog   delete   通过   

原文地址:http://www.cnblogs.com/zhjh256/p/6361457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!