一种c++不在运行时检查出错的方法

没有运行时检查的优势:程序更小更快,效率更高。

那么,怎样让程序在编译或链接时就检查错误呢?

1.将某个类中的数据成员再写成一个类

如;假如要你写一个date类

class date

{

public:

date(int day,int month,int year);

...

}

在这个类中,day与month不一定就是你要的数值,需要进行合法性检查。

我们以month为例:

1.采用枚举类型不用整数

enum Month{Jan=1,Feb=2,...};

构造函数就会这样写:

date(int day,Month month,int year);

但是,这样并不会有多少好处,因为枚举类型不需要初始化。如:

Month m;

date d(22,m,1997);

2.用一个类来表示month,保证month只有合法才被创建。

class Month

{

public:

static const Month Jan(){return 1}

static const Feb() Feb(){return 2}

...

int asInt() const

{

return monthNumber;

}

private:

Month(int number):monthNumber(number){}

const int monthNumber;

}

运行时检查错误不可能完全避免,但是,还是要尽力在编译或链接时检查错误。

摘录自effective c++ 条款46



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值