三九宝宝网宝宝百科宝宝知识

Copy构造和赋值操作中,复制对象的所有部分

11月24日 编辑 39baobao.com

[构造SQLServer安全门]在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。...+阅读

核心思想:Copy构造和赋值操作中,复制对象的所有部分。

设计良好的类封装了内部状态,只有两个复制函数:Copy构造函数和赋值操作函数。条款5中谈了编译器合成的复制函数。

当类中声明了Copy构造函数和赋值操作函数,即使有明显逻辑错误,编译器也不会报错。Mayers举了Customer类的例子:如果类中增加了新的成员变量,而没有更新相关复制函数,复制函数只复制对象的部分。

有继承时问题更隐蔽。PriorityCustomer Copy构造函数复制了子类成员变量,但是没有复制基类成员变量。PriorityCustomer类初始化列表中没有基类Customer,故调用的是基类缺省构造函数(参见条款5),基类成员变量执行的是缺省初始化,而不是复制。对赋值操作函数情况稍有不同:基类成员变量保持原样而没有被赋值。

解决方案是:同时复制基类部分。一般的,基类成员变量是private的,需要调用基类对应的复制函数。

两个复制函数实现很相似,但是让一个复制函数调用另一个是错误的做法:

- 赋值操作函数调用Copy构造是不合情理的。因为赋值操作函数是处理一个已经存在的对象,所以根本没有一种语法支持这样实现;

- Copy构造调用赋值操作也是错误的。Copy构造函数初始化新对象,赋值函数处理已存在对象。将赋值函数用于未初始化的对象是不正确的。

如果想消除重复代码,可以定义一个private成员函数供两种调用。

以下为关联文档:

怎样在SQLServer2005中构造模糊查找包问:怎样才能在SQL Server 2005中构造模糊查找包? 答:具体步骤如下: 1.打开 DTS 设计器。 2.创建一个新的 ETL 项目,添加一个新包,单击 Data Flow 选项卡,然后接受 add a data flow...

钢筋混凝土构造柱施工质量控制摘要:文章分析了钢筋混凝土构造柱的作用和构造要求,对其施工中的质量通病作了阐述,提出了具体的施工质量控制措施,供大家参考。 关键词:钢筋混凝土;构造柱;抗剪能力 1.前言 设置钢...

2008年注册造价师技术与计量之工程构造习题2一、单选题: 1、 梁板式肋形楼板的主梁沿房屋的短跨方向布置,其经济跨度为[ ]m A、3—5 B、5—8 C、6—9 D、8—10 你的答案: 标准答案:b 解 析:梁板式肋形楼板的主梁沿房屋的短...

2008年注册造价师技术与计量之工程构造习题1一、单选题: 过梁是门窗等洞口上设置的横梁,不承受[ ]传来的荷载。 A、洞口上部所有 B、窗间墙部分 C、洞口上部墙体 D、洞口上部其他构件 你的答案: 标准答案:b 解 析:过梁是门...

德语语法德语句子构造Mit einem Relativsatz kann man eine Sache nher beschreiben, ohne einen neuen Satz zu beginnen. Im Deutschen stehen Relativstze immer in Kommas. Relativpronomen...

2008年注册造价师技术与计量之工程构造习题4一、单选题: 1、洞身是涵洞的主要部分,它的截面形式有[ ]大类。 A、三 B、四 C、五 D、六 标准答案:a 解 析:洞身是涵洞的主要部分,它的截面形式有圆形、拱形、矩形(箱形)三大类...

2008年注册造价师技术与计量之工程构造习题3一、单选题: 1、 路面等级按面层材料的组成、结构强度、路面所能承担的交通任务和使用的品质划分[]个等级。 A. 3 B. 4 C. 5 D. 6 你的答案: 标准答案:b 解 析:路面等级按面层...

第十五章单层厂房构造第十五章 单层厂房构造 我国单层厂房一般采用的是装配式钢筋混凝土排架结构,它包括承重构件和围护构件两部分。 单层厂房平面设计要考虑到工厂总平面对平面设计的影响,厂房生...

抗震措施与抗震构造措施在《建筑抗震设计规范》(GB50011—2001)中对“抗震措施”与“抗震构造措施”有不同的定义。 抗震措施(规范2.1.9条):除地震作用计算和抗力计算以外的抗震设计内容,包括抗震构造措...

推荐阅读
图文推荐