头文件的包含及运算符重载

1、头文件中尽量使用前置声明,减少依赖,减少头文件的修改引起重新编译的代码量,使用前置声明时可做下列操作:

      1)声明某类的指针与引用的变量;

      2)函数声明可使用某类做为返回类型;

      3)可声明某类的静态变量,因为静态变量的定义在类定义之外。


2、头文件的包含顺序(减少依赖):

       1)某实现文件相应头文件;

       2)C 系统文件;

       3)C++ 系统文件;

       4)其他库的 .h 文件;

       5)本项目内 .h 文件。


3、运算符重载

     1)所有的一元运算符建议使用成员函数方式重载;

     2)=, (), [], -> 必须使用成员函数方式重载,编译器强制运算符‘+’为成员函数;

     3)+=、-=、/=、*=、^=、&=、|=、%=、>>=、<<= 建议使用成员函数方式重载;

     4)其它二元运算符建议使用非成员函数方式重载,成员函数将限制左操作数的类型,非成员函数则可对左操作数进行类型转换;

     5)., .*, :? 不可重载,‘.' 如果被重载,就不能用普通方式访问成员了,'.*‘ 与是同样的原因。


4、自动类型转换

     1)构造函数转换与运算符转换,构造函数是目的类型实现转换代码,运算符转换则是源类型实现转换代码;

                  构造函数前加关键词 explicit 表明该构造函数将不会被自动类型转换使用。

                  运算符转换声明 operator 后跟想到转换到的类型:operator type() consta {}。

     2)多种转换使用编译器产生一个不明指示的错误,以及一些隐藏行为。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值