今天在写操作系统的作业,发现c++的很多基本语法都忘了,现在自己把基本语法总结一遍。方便以后复习。
**1.构造函数:**
父类构造函数 -> 类成员的构造函数 -> 自己的构造函数
**2.初始化列表:**
这里有个博客挺好 http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html
我的总结:
Test1 test1 ;
Test2(Test1 &t1):test1(t1){}
Test1 test1 ;
Test2(Test1 &t1)
{
test1 = t1 ;
}
第2种test1需要执行一次默认构造函数+一次赋值操作
第1种test1只需要执行一次拷贝构造函数
特别的:下面情况只能用初始化列表
* 类成员没有默认构造函数
* 类成员是引用类型(只能初始化,不能赋值)
* 类成员是常量(只能初始化,不能赋值)
* 多个初始化列表,不是按初始化列表顺序,而是按声明顺序
结论:* 尽可能用初始化列表
* 初始化列表顺序和声明顺序一致
3.extern 外部的,extern 只是起一个declare作用,可以用来修饰变量和函数,表示该函数的定义在其他模块中,也就是说,如果你在a.cpp文件中定义a=1;在b.cpp文件中声明extern a;则可以引用a.cpp中的a。
4.#ifdef表示条件编译
5.#define 和 typedef的区别:
define预处理,无脑替换
typedef是别名,不一样。
define INT int*
typedef int* INT
则 INT a,b:
typedef: int* a,b: a,b都是int*
define: int*a,b : a是int*,b是int