美文网首页
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