当前位置: 首页 > news >正文

【C++11】default、delete与Noncopyable

C++11 oop中的default、delete与Noncopyable

default

在C++11标准中,可以使用default关键字来显式地声明默认的构造函数和析构函数。

使用default关键字可以用来显式声明默认的构造函数和析构函数。这样做可以让编译器自动生成默认实现

–>->->关于构造函数<-<-<–

class A {
public:// 显式声明默认构造函数A() = default;// 显式声明默认析构函数~A() = default;
};int main() {A obj;    // 调用默认构造函数return 0;
}

注意:
1. Defaulted 函数特性仅适用于类的特殊成员函数,且该特殊成员函数没有默认参数。
2. Defaulted 函数既可以在类体里(inline)定义,也可以在类体外定义。

delete

使用delete关键字的函数在其他地方无法使用,即这个函数不存在,禁止定义。

class A {
public:// 禁止拷贝构造函数 A (const A &) = delete; //“delete”特性可以作用于非特殊成员函数void f() = delete; 
};int main() {A obj;    // 调用默认构造函数return 0;
}

Noncopyable不可拷贝对象

封装一个不可拷贝对象Noncopyable,当类需要不可拷贝时可继承自Noncopyable

#ifndef __RADIXUN_NONCOPYABLE_H__
#define __RADIXUN_NONCOPYABLE_H__namespace radixun{/*** @brief 对象无法拷贝,赋值*/
class Noncopyable{
public:/*** @brief 默认析构函数*/Noncopyable() = default;/*** @brief 默认析构函数*/~Noncopyable() = default;/*** @brief 拷贝构造函数(禁用)*/Noncopyable(const Noncopyable&) = delete;/*** @brief 赋值函数(禁用)*/ Noncopyable& operator=(const Noncopyable&) = delete;
};}#endif

http://www.lryc.cn/news/240811.html

相关文章:

  • 【心得】基于flask的SSTI个人笔记
  • ubuntu20.04 nginx 部署静态网页
  • vue脚手架的基础搭建过程
  • 函数与数组
  • 2023年【安全生产监管人员】考试题及安全生产监管人员找解析
  • K8S(一)
  • Linux快速显示文件行号并跳转
  • 异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (二)
  • HugeGraph安装与使用
  • 计算机端口
  • 激发创新,助力研究:CogVLM,强大且开源的视觉语言模型亮相
  • centos 6.10 安装 perl 5.14
  • Elasticsearch:FMA 风格的向量相似度计算
  • 思维模型 等待效应
  • Linux下使用宏定义判断系统架构和系统类型
  • Python---把函数的返回值作为另外一个函数的参数
  • 231123 刷题日报-动态规划
  • 微信小程序前端环境搭建
  • 【Qt一坑】qt编译出现“常量中有换行符”
  • C++每日选择题—Day1
  • 【实用】mysql配置 及将线上数据导入本地 问题解决及记录
  • 如何下载OpenJDK及其源码
  • [Android]使用Retrofit进行网络请求
  • OpenGL 绘制圆形平面(Qt)
  • JAVA系列---Servlet详解
  • 机器人制作开源方案 | 钻孔植树一体化沙漠车
  • OmniGraffle
  • 【C++上层应用】4. 多线程
  • 【uni-app】uniapp中弹出输入框的示例
  • 通过bat脚本控制Oracle服务启动停止