-
class MyClass
{
public:
MyClass()=default;
MyClass(const MyClass& )=delete;
......有些时候我们希望限制默认函数的生成。典型的是禁止使用拷贝构造函数,以往的做法是将拷贝构造函数声明为private的并不提供实现,这样当拷贝构造对象时编译不能通过,C++11则使用delete关键字显式指示编译器不生成函数的默认版本。当然,一旦函数被delete过了,那么重载该函数也是非法的,该函数我们习惯上称为删除函数。
2024-03-31 14:51:04
class MyClass
{
public:
MyClass()=default;
MyClass(const MyClass& )=delete;
......
有些时候我们希望限制默认函数的生成。典型的是禁止使用拷贝构造函数,以往的做法是将拷贝构造函数声明为private的并不提供实现,这样当拷贝构造对象时编译不能通过,C++11则使用delete关键字显式指示编译器不生成函数的默认版本。当然,一旦函数被delete过了,那么重载该函数也是非法的,该函数我们习惯上称为删除函数。