介绍
delete
与default
在函数中的使用方法。
函数禁用delete
在函数声明后加入=delete
即可将该函数标记,一旦被调用则会导致编译错误。
例如:1
2
3
4
5struct Test {
void* operator new(std::size_t) = delete;
void* operator new[](std::size_t) = delete;
};
Test *p = new Test; // 编译错误
替代函数体定义dafault
在函数声明后加入=default
即可替代函数体进行定义,适用范围类的特殊成员函数,且该特殊成员函数没有默认参数。
例如:1
2
3
4class Test {
public:
Test() = default;
};
等价于:1
2
3
4
5
6class Test {
public:
Test()
{
}
};
参考
1 | https://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions |