C++注意点

来源:互联网 发布:java常见注解 编辑:程序博客网 时间:2024/06/05 04:51

拷贝构造函数的参数类型必须是引用

转自:http://blog.csdn.net/hackbuteer1/article/details/6545882
原因:
如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷贝构造函数。因此拷贝构造函数的参数必须是一个引用。
需要澄清的是,传指针其实也是传值,如果上面的拷贝构造函数写成CClass(const CClass* c_class),也是不行的。事实上,只有传引用不是传值外,其他所有的传递方式都是传值。

++i比i++效率更高

内建数据类型的情况,效率没有区别。
自定义数据类型的情况,++i效率较高。