Effective C++ 让接口容易被正确使用,不易被误用

如题目,我们自己的程序接口是面向用户的,程序的目的不可是解决这个问题,并且要让用户easy使用。所以。必须保证我们的程序接口具有非常强的健壮性。

怎么保证接口的健壮性,不同情况有不同的处理结果,作者列出了以下几个样例所相应的方法。

1.设计一个class来表示日期

class Date
{

public:
 void Date(int month, int day, int year);
 ……
};12345

以上的构造接口非常easy被用户用错

Date d(30, 3, 1995);//把月和日弄反了1

作者的方法是定义新形式。新类型。

struct Day
{
	explict Day(int d):val(d){};
	int val;
}


struct Month
{
    explicit Month(int m):val(m){}
    int val;
};



struct Year
{
    explicit Year(int y):val(y){}
    int val;
};


class Date
{
public:

 void Date(const Month& m, const Day& d, const Year& y);};12345678910111213141516171819

2.另外一种情况。为了防止出现以下的赋值把operator*返回const类型。以下的语句就无法通过编译

 if(a*b=c)//这里事实上打算做比較,而不是赋值1

3.使用智能指针

shared_prt<Investment> createInvestment()
 {
    shared_prt<Investment> retVal(static_cast<Investment*>(0),getRidOfInvestment);
    retVal=……;//令retVal指向正确对象
    return retVal;
 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值