注册 登录
编程论坛 C语言论坛

在C++中,delete用在赋值语句中,有这种用法吗?

weikong66 发布于 2023-07-06 16:16, 762 次点击
有人用C++编写了一个类,其中有下面3条语句:
    TransmitSignals(const TransmitSignals &) = delete ;
    TransmitSignals(const TransmitSignals &&) = delete;
    TransmitSignals &operator=(const TransmitSignals &) = delete;
我使用了这个类。在编译时这3条语句出错。我也感觉delete的这种用法没见过。请问哪位高手能说明一下该delete的用法对不对?
1 回复
#2
八画小子2023-07-06 17:25
首先,给楼主说一下,你来错地方了,这属于C++的范畴,而非C语言。
其次,既然你问道了,就顺便给说一下,= delete表示告诉编译器该类无对应的构造函数。
最后,顺便给你也说一下,和=delete对应的还有=default。这个的意思是说让编译器自动生成对应的构造函数,作为程序员的你,不必要写这些函数。
最后的最后,给你说一下,个人建议最好用=delete,而不是无=delete或用=default,除非你确定会发生什么。
1