将程序变得高大上的几个注意点
- 头文件的防卫式声明:
include指令是编译预处理,在一个程序的开头,用来包含标准库文件和自己编写的库文件。用防卫式声明,可以帮我们避免头文件中的重复编译。
- Template 模板
当我们在建造一个class的时候,如果我们想多建几个几乎是99%结构相同的object,只要一些属性比如double、int这些不一样,可以用template来代替这些具体的定义。
- Inline 内联函数
函数若在class body内定义完成,便会自动成为inline函数候选人。我们在写函数时,都可以假装写上inline,因为编译器会自动检验它是否有成为inline函数的潜质,如果有的话,inline函数就可以提高程序的效率
inline.png- Constructor(ctor) 构造函数定义方式
在构造函数名和函数内容({}里面的东西)之间,可以用一个冒号:完成initializtion的工作,这样程序运行更加快。
构造函数可以有很多个overloading(重载),这也是C++区别于C的一个重要特性。
overloading.png- Const member function 常量成员函数
只要不影响内部数据的内容,都可以定义为const member function.
-
参数/返回值传递:pass by value vs. pass by reference
pass by reference更有效率并且节省内存,但有时不得不pass by value,比如不能改变原来的数据的时候。 -
Friend 友元
使用友元,便可自由取得private中的内容,比如相同class的各个object互为友元。
- Operator overloading 操作符重载
To be continued, 这篇博客之后会更加完善的。。。
网友评论