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

上海哪里网站备案网站弹出代码

上海哪里网站备案,网站弹出代码,个人网站素材图片,网站开发相关英文单词在C中#xff0c;禁用拷贝构造函数和拷贝赋值操作符的方式通常是为了防止类的对象被意外复制#xff0c;这对于那些管理独占资源或不应被复制的对象尤为重要。 class LatActiveControlState : public LatState { public:LatActiveControlState() : LatState(LatS_ActiveCont…在C中禁用拷贝构造函数和拷贝赋值操作符的方式通常是为了防止类的对象被意外复制这对于那些管理独占资源或不应被复制的对象尤为重要。 class LatActiveControlState : public LatState { public:LatActiveControlState() : LatState(LatS_ActiveControl){}virtual ~LatActiveControlState() default;virtual void handleState(Fct::LatStateMachine* pcontext); private://设置为私有变相的相当于在外部禁用了复制构造函数和拷贝赋值操作符LatActiveControlState(const LatActiveControlState);LatActiveControlState operator(const LatActiveControlState); };上方的代码禁用了这两种成员函数但仅仅是声明了它们并没有明确地禁用。这样的声明通常会在类的私有部分防止外部直接访问但关键是这些成员函数应该在私有部分且不提供实现或者使用现代C的更明确方式。 从C11开始更推荐的方式是使用 delete关键字直接在声明时禁用这些函数。这样做不仅代码更清晰易懂而且能够在编译时提供更好的错误消息而不是在链接时。下面是如何使用 delete来显式禁用拷贝构造函数和赋值操作符的例子 class LatActiveControlState : public LatState { public:LatActiveControlState() : LatState(LatS_ActiveControl) {}virtual ~LatActiveControlState() default;// 禁用拷贝构造函数LatActiveControlState(const LatActiveControlState) delete;// 禁用拷贝赋值操作符LatActiveControlState operator(const LatActiveControlState) delete;virtual void handleState(Fct::LatStateMachine* pcontext); };使用 delete明确指出这些函数不可用这是一种更现代、安全且清晰的做法。如果您的代码中没有使用 delete可能是因为它是较早的C代码或者代码的作者没有采用这种方式。在现代C实践中推荐使用 delete来替代未定义的私有方法从而提供更好的安全性和可读性。 拷贝赋值构造函数与拷贝赋值运算符的区别与联系 在C中术语“赋值构造函数”实际上是一个误称可能是指“拷贝赋值操作符”。拷贝赋值操作符是一个特殊的成员函数它定义了当一个对象被另一个已存在的对象赋值时应该发生什么。 拷贝赋值操作符 拷贝赋值操作符通常是类的一个成员函数它具有以下特征 函数名operator参数通常接受一个常量引用到同一类的对象返回值通常返回对当前对象的引用*this 拷贝赋值操作符的典型声明如下 class ClassName { public:ClassName operator(const ClassName other) {// 拷贝赋值的逻辑return *this;} };使用场景和行为 拷贝赋值操作符在对象需要通过赋值从另一个对象复制数据时被调用。例如 ClassName obj1; ClassName obj2; obj1 obj2; // 调用 obj1.operator(obj2)在上面的例子中obj1通过obj2的数据被重新赋值。拷贝赋值操作符通常要处理以下事项 自我赋值检查确保对象不会意外地将其自身赋值给自己这可能导致数据错误或资源泄露。资源管理如果类管理如动态内存或文件句柄等资源赋值操作符需要正确地释放旧资源并从源对象复制或重新获取新资源。返回引用返回对象自身的引用允许链式赋值例如obj1 obj2 obj3;。 与拷贝构造函数的区别 拷贝赋值操作符和拷贝构造函数在功能上相似但用于不同的场合 拷贝构造函数用于创建一个新的对象作为另一个对象的副本。拷贝赋值操作符用于将一个已经存在的对象重新赋值为另一个对象的副本。 拷贝构造函数的典型声明如下 class ClassName { public:ClassName(const ClassName other) {// 拷贝构造逻辑} };理解这两者的区别对于设计管理资源的类非常重要以确保对象的每次拷贝和赋值都是安全和高效的。
http://www.hkea.cn/news/14314606/

相关文章:

  • 成都网站优化wordpress 无广告视频插件
  • 空间坐标系做图网站市面上做网站多少钱
  • 静态网站分页苏州网站建设 苏州网络推广专家
  • 温州市网站制作多少钱wordpress超酷主题
  • 绍兴网站快速排名优化大连哪家网站公司好
  • wordpress可以仿任何站做网站是要云空间吗
  • 宝应123网站建设网腾讯云服务器安装宝塔教程
  • 上海艺佳建设发展有限公司网站信誉好的盐城网站开发
  • html5 微信网站中国造价工程建设管理协会网站
  • 得实网站建设上海的招聘网站有哪些
  • 做网站什么需要好养老院网站开发背景
  • 网站推广必做工作总结怎么写
  • 中文软件开发工具搜索引擎优化的主要工作有
  • 博学云网站建设软文广告经典案例短的
  • 网站备案个人可以做吗建设银行网站机构特点业务发展
  • 做国际网站的上海高端网站公司饲料 东莞网站建设
  • 自己做网站如何挣钱免费自助建站
  • 镇江房地产网站建设wordpress培训机构主题
  • 杭州萧山区专业做网站的公司工商网上注册营业执照
  • 大学专业宣传网站开发课题意义杭州旅游团购网站建设
  • 单位门户网站怎么制作小程序
  • 仓库管理系统网站建设网站开发项目实例
  • WordPress中文名字叫什么seo基础培训
  • wordpress 3.9网站栏目页 优化
  • 如何介绍自己做的网站wordpress使用hexo主题
  • 中建西部建设广通讯网站网站建站网站网站维护
  • dw建设网站视频河南建设建设监理协会网站
  • 做网站申请多少类商标搜索引擎优化的定义
  • 怎么打开域名网站全国定制网站服务器云主机
  • 德州市建设局质监站网站河南郑州新闻