1.首先建立namesp.h文件,代码如下
#include "stdafx.h"
#include <string>
namespace pers
{
struct Person
{
std::string fname;
std::string lname;
};
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);
};
2.建立namesp.cpp文件,代码如下
#include "stdafx.h"
#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.fname<<", "<<rp.lname;
};
};
namespace debts
{
void getDebt(Debt & rd)
{
getPerson(rd.name);
std::cout<<"Enter debt: ";
std::cin>>rd.amount;
};
void showDebt(const Debt & rd)
{
showPerson(rd.name);
std::cout<<": $"<<rd.amount<<std::endl;
};
double sumDebts(const Debt ar[],int n)
{
double total=0;
for(int i=0;i<n;i++)
{
total+=ar[i].amount;
}
return total;
};
};
3.main主函数
// ggg.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include "namesp.h"
void other(void);
void another(void);
int _tmain(int argc, _TCHAR* argv[])
{
using debts::Debt;
using debts::showDebt;
Debt golf={{"Benny","Goatsniff"},120.0};
showDebt(golf);
other();
another();
return 0;
}
void other()
{
using std::cout;
using std::cin;
using namespace debts;
Person dg={"Doodles","Glister"};
showPerson(dg);
cout<<std::endl;
Debt zippy[3];
for(int i=0;i<3;i++)
{
getDebt(zippy[i]);
}
for(int i=0;i<3;i++)
{
showDebt(zippy[i]);
}
cout<<"Total debt: $"<<sumDebts(zippy,3)<<std::endl;
return;
}
void another()
{
using pers::Person;
Person collector={"Milo","Rightshift"};
pers::showPerson(collector);
std::cout<<std::endl;
}