美文网首页
deleted function

deleted function

作者: devilisdevil | 来源:发表于2021-04-02 08:51 被阅读0次

    C++会给类型生成一些默认函数:默认构造函数、复制构造函数、赋值函数等等。如果你不想要这些函数,比如你的类型没有复制/赋值语义(比方说类成员有指针),你就会想把复制构造函数和赋值函数删掉

    Blah(const Blah&) = delete;
    Blah& operator=(const Blah&) = delete;
    

    这样如果你不慎对着这个类进行了复制或者赋值操作,编译就会报错。

    被删掉的函数是没有定义的,所以即使在多个编译单元出现,也不会被编译到各个单元的目标文件里,在链接时不会出现重定义问题。

    ref: C++中,什么是delete function? - 知乎

    相关文章

      网友评论

          本文标题:deleted function

          本文链接:https://www.haomeiwen.com/subject/yyjfkltx.html