类成员函数后加default
时间: 2023-08-14 22:13:20 浏览: 58
在C++中,当我们定义一个类成员函数时,可以使用`default`关键字来指定该函数使用默认的实现。这意味着编译器将生成一个默认的函数体,执行一些默认的操作。
默认成员函数的使用场景有以下几种情况:
1. 默认构造函数:当我们没有提供任何构造函数时,编译器会自动生成一个默认的构造函数。我们可以显式地将其定义为`default`,表示使用编译器提供的默认实现。
```cpp
class MyClass {
public:
MyClass() = default; // 默认构造函数
};
```
2. 默认析构函数:当我们没有提供任何析构函数时,编译器会自动生成一个默认的析构函数。同样,可以显式地将其定义为`default`。
```cpp
class MyClass {
public:
~MyClass() = default; // 默认析构函数
};
```
3. 默认拷贝/移动构造函数和赋值运算符:当我们需要对类进行拷贝和移动操作时,如果没有提供相应的拷贝/移动构造函数和赋值运算符重载,编译器会自动生成默认的实现。同样,可以显式地将其定义为`default`。
```cpp
class MyClass {
public:
MyClass(const MyClass&) = default; // 默认拷贝构造函数
MyClass(MyClass&&) = default; // 默认移动构造函数
MyClass& operator=(const MyClass&) = default; // 默认拷贝赋值运算符
MyClass& operator=(MyClass&&) = default; // 默认移动赋值运算符
};
```
这些是`default`关键字的常见用法,通过将函数定义为`default`,我们可以利用编译器提供的默认实现,减少我们自己编写代码的工作量。