理解函数声明中“=delete”的含义
在 C 11 中,“=delete”语法用于删除功能,有效防止其使用。它通常用于禁止复制或限制某些转换。
删除复制构造函数和赋值运算符
也许“=删除”最常见的用例是禁止复制。例如,如果我们有一个名为“my_class”的类,我们不想被复制,我们可以声明:
class my_class { public: ... my_class(const my_class &) = delete; ... };
此声明可防止编译器为“生成默认的复制构造函数和赋值运算符” my_class."
防止不需要的转换
“=”的另一种用法delete”是为了禁止特定的类型转换。例如,如果我们有一个类“Z”,我们只想从“long long”值构造,我们可以使用“=删除”来防止较小类型的转换:
struct Z { public: ... Z(long long); // can initialize with a long long Z(long) = delete; // but not anything less };
其他函数修饰符
除了“= 0”(将函数设置为纯虚拟)和“= delete”(删除function),C 中没有其他函数修饰符。但是,其他关键字(例如“override”和“final”)可用于修改虚函数的行为。
以上是C 函数声明中的'=delete”是什么意思?的详细内容。更多信息请关注PHP中文网其他相关文章!