EffectiveC++ Item11
这个item主要分析了防止对象自我赋值,利用copy-and-swap策略来解决。
写了小代码,其实在实际中大部分会简单写:
#include <iostream>
#include<string>
using namespace std;class Widget
{
public:Widget(int aData):m_Data(aData){}virtual void Swap(Widget &aRhs){int lTemp = aRhs.m_Data;aRhs.SetData(m_Data);m_Data = lTemp;}Widget& operator=(const Widget &aRhs){Widget lTemp(aRhs);Swap(lTemp);return *this;}int GetData() const{return m_Data;}void SetData(int aData){m_Data = aData;}
private:int m_Data;
};
class Drived: public Widget
{void Swap(Drived &aRhs){Drived lTemp(aRhs);aRhs = *this;*this = lTemp;}private:int m_DriveData;
};int main()
{Widget lTest1(10);Widget lTest2(-10);lTest2 = lTest1;cout << lTest2.GetData() << endl;}
EffectiveC++ Item11相关推荐
- [EffectiveC++]item34:区分接口继承和实现继承
[EffectiveC++]item34:区分接口继承和实现继承 转载于:https://www.cnblogs.com/jeanschen/p/3363569.html
- effectivec++条款18,让接口容易被正确使用,不宜被吴勇
test* create_test();shared_ptr<test> create_test();//下面的接口比上面的接口要好 auto_ptr<test> create ...
- [EffectiveC++]item17:以独立语句将newed对象置入智能指针
Store newed objects in smart pointers in standalone statements 转载于:https://www.cnblogs.com/jeanschen ...
- [EffectiveC++]item41:了解隐式接口和编译期多态
转载于:https://www.cnblogs.com/jeanschen/p/3520294.html
- [EffectiveC++]item32:确定你的public继承模塑出is-a关系
1) 2) 3) 4) 转载于:https://www.cnblogs.com/jeanschen/p/3593466.html
- EffectiveC++编程的50个建议
文章目录 何时调用`copy`构造函数 视`C++`为一个语言联邦 尽量以`cosnt.enum.inline`替换`#define` 尽可能使用`const` 确定对象被使用之前已先被初始化 了解` ...
- [EffectiveC++]item21:Don't try to return a reference when you must return an object
转载于:https://www.cnblogs.com/jeanschen/p/3229602.html
- [EffectiveC++]item22:Declare data members private
将成员变量隐藏在函数接口的背后,可以为"所有可能的实现"提供弹性, 假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量. prot ...
- [EffectiveC++]item02:尽量以const,enum,inline代替#define
转载于:https://www.cnblogs.com/jeanschen/p/3214662.html
最新文章
- 使用PyTorch从零开始实现YOLO-V3目标检测算法 (四)
- 关于页面莫名空白的解决方式
- 树莓派:外设开发编程,控制继电器
- android中判断设备定位状态
- Spring MVC 入门
- react 文本框_React自动完成文本框
- $.ajax 同步一不,ajax 同步不生效
- 用PyTorch实现一个卷积神经网络进行图像分类
- Atitit uri url urn 的概念区别 与联系 目录 1.1. 概念图 uri包括url和urn。。Urn一般是相对路径。。。	1 1.2. 统一资源名称 (Uniform Resourc
- div并排排列的两种方法浅谈。
- 独自封装windows 10系统教程(全)
- imx6,imx7和am335环境变量配置文件
- 无版权,全免费,请收藏这10个免费高清无权素材网站
- 一文解读KANO模型
- 危机管理计划书模板_危机公关策划书范文_计划方案.doc
- 公交线路查询接口使用说明
- 拟合系数 / 决定系数 / R方 / R^2的理解
- kettle-java代码执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn‘t be found!
- Windows 应用商店无法打开解决办法
- 河北省地税数据上收集中及异地容灾应用(RealSync数据库同步复制)