LoveLife

曾今写代码,现在还是写代码

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

=delete用法

在C++11及以后的版本中,= delete 是一个特殊的语法,用于明确地删除某个成员函数(包括构造函数、析构函数、赋值操作符、特殊成员函数等)的默认实现。当某个成员函数被声明为 = delete,则这个成员函数变得不可用,如果你试图使用它,编译器将给出一个错误。

class A
{
public:
void Foo() const
{
printf("A::Foo()\r\n");
}

void Foo2() const
{
printf("A::Foo2()\r\n");
}
};


class B : public A
{
public:
void Foo() const = delete;
};


int _tmain(int argc, _TCHAR* argv[])
{
B b;
// b.Foo(); //ERROR
b.Foo2();
return 0;
}

用法场景 语法示例 作用
内存释放 delete ptr; 释放动态分配的内存
删除函数 void func() = delete; 禁止函数被调用
禁用构造 MyClass() = delete; 阻止类的实例化
模板特化 template<> void f<char*>() = delete;  禁用特定模板实例
虚函数限制 virtual void vf() = delete;  禁止基类接口调用

 

  
  
  
  
 
 

posted on 2026-10-22 20:41  LoveLifeMM  阅读(5)  评论(0)    收藏  举报