C赋值运算符 – 编译器生成还是自定义?

栏目: 服务器 · 编程工具 · 发布时间: 7年前

内容简介:如果您编写了自己的析构函数或复制构造函数,通常只需要编写自己的赋值运算符.如果您不需要那些,那么您也不需要赋值运算符.翻译自:https://stackoverflow.com/questions/3571975/c-assignment-operator-compiler-generated-or-custom

我有一个中等复杂的C类,它拥有从光盘读取的一组数据.它包含浮动,整体和结构的折衷混合,现在通常使用.在主要代码审查期间,询问我们是否有自定义赋值运算符,或者我们依赖于编译器生成的版本,如果是,我们如何知道它是否正常工作?好吧,我们没有编写自定义任务,因此添加了一个单元测试来检查我们是否这样做:

CalibDataSet datasetA = getDataSet();
CalibDataSet dataSetB = datasetA;

那么datasetB就像datasetA一样.几百行左右.现在,客户坚持认为我们不能依赖编译器(gcc)对未来的版本是正确的,我们应该编写自己的版本.他们坚持这个是正确的吗?

附加信息:

我对已发布的答案/评论和响应时间印象深刻.另一种提出这个问题的方法可能是:

POD结构/类何时成为’非’POD结构/类?

如果您编写了自己的析构函数或复制构造函数,通常只需要编写自己的赋值运算符.如果您不需要那些,那么您也不需要赋值运算符.

翻译自:https://stackoverflow.com/questions/3571975/c-assignment-operator-compiler-generated-or-custom


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解LINUX网络技术内幕

深入理解LINUX网络技术内幕

Christian Benvenuti / 夏安、闫江毓、黄景昌 / 中国电力出版社 / 2009-6 / 128.00元

Linux如此的流行正是得益于它的特性丰富及有效的网络协议栈。如果你曾经惊叹于Linux能够实现如此复杂的工作,或者你只是想通过现实中的例子学习现代网络,《深入理解Linux网络内幕》将会给你指导。同其他O'Reilly的流行书籍一样,《深入理解Linux网络内幕》清楚地阐述了网络的基本概念,并指导你如何用C语言实现。虽然早先的 TCP/IP经验是有用的,但初学者通过《深入理解Linux网络内幕》......一起来看看 《深入理解LINUX网络技术内幕》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器