模块化(modularization):
把程序划分成多个组成部分,这是通过把程序代码分散到多个文件里,等编译程序时再把那些文件重新组合在一起实现的。
命名空间(namespace):
为解决C++中变量、函数的命名冲突而服务的。事实上就是一个含有许多标识符的空间,其中包括了许多标识符的定义。
创建头文件
绝大多数头文件是通用型的,不隶属于任何特定的程序,所以至少把它的用途和用法描述清楚。应该在注释里说明的内容包括:
(1)创建日期,文件用途,创建者姓名,最后一次修改日期,有什么限制和前提条件等等。
(2)另外头文件里的每个类和函数也应该有说明。
虽说头文件可以用来保存任意代码片段,但典型的做法是只用它们来保存函数声明、用户自定义类型数据(结构和类)、模板和全局性的常量。如果你有一个程序需要多次调用一个或一组函数,或是你有一个或一组函数需要在多个程序里调用,就应该把它们的声明拿出来放到一个头文件里。
// Rational.h
// Create by 小甲鱼
// 这个头文件声明了有理数类(Rational class)
// 类里边对四则运算进行重载,以实现分数运算
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class Rational
{
public:
Rational(int num, int denom); //num=分子,denom=分母
Rational operator+(Rational rhs); //rhs = right hand side
Rational operator-(Rational rhs);
Rational operator*(Rational rhs);
Rational operator/(Rational rhs);
void print();
private:
void normalize(); //负责对分数的简化处理
int numerator; //分子
int denominator; //分母
friend ostream& operator<<(ostream& os, Rational f);
};