多文件结构和编译预处置惩罚命令
C++程序的一般组织结构
•一个源程序可以划分为多个源文件:
- 类声明文件(.h文件)
- 类实现文件(.cpp文件)
- 类的使用文件(main()所在的.cpp文件)
外部变量
•在全部类之外声明的函数(也就是非成员函数),都是具有文件作用域的。
•如许的函数都可以在差别的编译单位中被调用,只要在调用之进步行引用性声明(即声明函数原型)即可。也可以在声明函数原型或界说函数时用extern修饰,其结果与不加修饰的缺省状态是一样的。
namespace
•使用匿名的命名空间:在匿名命名空间中界说的变量和函数,都不会袒露给其它的编译单位。- **namespace** { //匿名的命名空间
- int n;
- void f() {
- n++;
- }
- }
复制代码 •这里被“namespace { …… }”括起的区域都属于匿名的命名空间。
访问权限
- public:全部
- private:本类,友元
- protected:本类,派生类,友元
重载
内联函数
- 为了提高运行效率
- 不要有复杂的结构(循环,swich语句)
- 将函数体放在类的声明中
- 使用inline关键字
- 类结构中所在的类说明内部界说的函数是内联函数。
带默认参数的函数
构造函数
- 函数名和类名完全相同
- 不写构造函数时,体系会默认给一个无参的默认构造函数
- 个数大于等于一个
析构函数
委托构造函数
复制(拷贝)构造函数
[code]#include using namespace std;class Point { //Point 类的界说public: //外部接口 Point(int xx = 0, int yy = 0) { //构造函数 x = xx; y = yy; } Point(const Point &p); //拷贝构造函数 int getX() { return x; } int getY() { return y; }private: //私有数据 int x, y;};//成员函数的实现Point: oint(const Point &p) { x = p.x; y = p.y; cout |