//namesp.h
namespace pers{
const int LEN = 40; struct Person{ char fname[LEN]; char lname[LEN]; };
void getPerson(Person &);
void showPerson(const Person &); }
namespace debts{
using namespace pers; struct Debt{ Person name; double amount; };
void getDebt(Debt &);
void showDebt(const Debt &);
double sumDebts(const Debt ar[], int n); }
第二个文件:
//namesp.cpp
#include <iostream>#include "namesp.h"
namespace pers{ using std::cout; using std::cin;
void getPerson(Person &rp){ cout<<"Enter first name: "; cin>>rp.fname;
cout<<"Enter last name: "; cin>>rp.lname; }
void showPerson(const Person &rp){
cout<<rp.lname<<", "<< rp.fname; } }
namespace debts{ using std::cout; using std::cin; using std::endl;
void getDebt(Debt & rd){ getPerson(rd.name); cout<< "Enter debt: "; cin>>rd.amount; }
void showDebt(const Debt &rd){ showPerson(rd.name);
cout<<": $"<<rd.amount<<endl; }
double sumDebts(const Debt ar[], int n){ double total = 0;
for(int i = 0; i < n; i++){ total += ar[i].amount; }
return total; } }
第三个文件:
//namessp.cpp
#include <iostream>#include "namesp.h"
void other (void); void another(void);
int main(void) {
using debts::Debt; using debts::showDebt;
Debt golf = { {"Benny","Goatsniff"},120.0}; showDebt(golf); other(); another();
return 0; }
void other(void) {
using std::cout; using std::endl;
using namespace debts;
Person dg = {"Doodle", "Glister"}; showPerson(dg); cout<<endl; Debt zippy[3]; int i;
for(i = 0; i < 3; i++){ getDebt(zippy[i]); }
for(i = 0; i < 3; i++){ showDebt(zippy[i]); }
cout<<"Total debt: $" <<sumDebts(zippy,3)<<endl; return; }
void another(void){ using pers::Person;
Person collector = {"Milo", "Rightshift"}; pers::showPerson(collector); std::cout<<std::endl; }
C++鼓励程序员在开发程序时使用多个文件.一种有效的组织策略是,使用头文件来定义用户类型,为操纵用户类型 的函数 提供函数原型;并将函数 定义放在一个独立的源代码当中.头文件和源代码文件一起定义和实现了用户定义的类型 及其使用方式.最后,将main()和其他这些函数的函数放在第三个文件中.