• C++ namespace的用法


    //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()和其他这些函数的函数放在第三个文件中.

  • 相关阅读:
    repair table
    rmtree函数
    alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
    MySQL DATE_SUB() 函数
    freebsd开启root远程登陆
    nbtscan ip地址
    FreeBSD 安裝 wget
    genlist -s 192.168.21.*
    /pentest/enumeration/0trace
    CSS的margin属性:详解margin属性
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2474215.html
Copyright © 2020-2023  润新知