2017.06.27 有关c++命名空间的学习

来源:互联网 发布:分享到qq好友js代码 编辑:程序博客网 时间:2024/06/04 18:30

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;}



原创粉丝点击