C++ 成员函数后面写 delete
时间: 2023-08-02 11:07:04 浏览: 54
在 C++ 中,在成员函数后面写 `delete` 关键字可以用来禁止或删除特定的成员函数。
当我们在类的定义中声明一个成员函数,并在其后面使用 `delete` 关键字时,意味着我们要禁止该函数的使用。这样做可以在编译期间阻止对该函数的调用,从而实现对特定函数的限制。
以下是一些使用 `delete` 关键字的示例:
1. 禁止默认构造函数:
```cpp
class MyClass {
public:
MyClass() = delete;
};
```
在这个例子中,我们使用 `delete` 关键字来禁止了默认构造函数。这意味着不能通过默认方式创建 `MyClass` 类的对象,而必须使用其他方式进行初始化。
2. 禁止拷贝构造函数和拷贝赋值运算符:
```cpp
class MyNonCopyableClass {
public:
MyNonCopyableClass(const MyNonCopyableClass&) = delete;
MyNonCopyableClass& operator=(const MyNonCopyableClass&) = delete;
};
```
在这个例子中,我们使用 `delete` 关键字禁止了拷贝构造函数和拷贝赋值运算符。这样做可以防止对象被拷贝,只能通过移动语义或其他方式进行对象的复制或赋值操作。
需要注意的是,`delete` 关键字只能用于特定的函数(如构造函数、析构函数、拷贝构造函数、拷贝赋值运算符等),而不能用于普通的成员函数。
使用 `delete` 关键字可以提高代码的可读性和安全性,同时也是一种良好的编程实践,可以防止误用或不必要的函数调用。