Safe C++ 读书笔记:对基本数据类型进行封装,以编写更安全的C++代码

本文介绍了如何遵循《Safe C++》的建议,通过封装基本数据类型来实现更安全的C++代码。利用RAII原则,作者展示了如何创建一个SafeTypeClass,确保在初始化过程中避免错误,例如在除法运算中防止除以零。通过示例代码,文章演示了封装后的类如何工作,并与未封装的类进行对比。
摘要由CSDN通过智能技术生成
本文是根据 Safe C++, How to avoid common mistakes 中的例子总结而来。

熟悉C++的同学对构造函数初始化列表一定不会陌生,采用这种方法对类进行初始化不仅安全而且更有效率。不管数据成员是内置数据类型还是自定义的类型,我们也都非常习惯这种初始化的用法。
比如我们下面的类NormalClass有一个int型数据成员_data,而我们希望将其默认值填成0。需要在默认构造函数中初始化列表中赋初值0。例如如下代码:

/*NormalClass.h*/
#ifndef _NORMAL_CLASS_
#define _NORMAL_CLASS_
class NormalClass
{
public:
    NormalClass():_data(0)
    {}
    NormalClass(int value):_data(value)
    {}
    int GetData()
    {
        return _data;
    }
private:
    int _data;
};
#endif

但是如果你打算编写更安全的代码,Safe C++书中给出的建议是对基本数据类型进行安全的封装,根据C++ RAII的特性使得初始化的过程既是赋默认值的过程。

/*SafeTypeClass.h*/
#ifndef _SAFE_TYPE_CLASS_
#define _SAFE_TYPE_CLASS_
#include <iostream>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值