⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例14.5.txt

📁 是关于谭浩强老师的C++程序设计课程的程序源代码以及课件
💻 TXT
字号:
例14.5 利用命名空间来解决例14.4程序名字冲突问题。
修改两个头文件,把在头文件中声明的类分别放在两个不同的命名空间中。
//header1.h  (头文件1)
#include <string>
#include <cmath>
using namespace std;
namespace ns1//声明命名空间ns1
{class Student                 //在命名空间ns1内声明Student类
{public:
Student(int n,string nam,int a)
{num=n;name=nam;age=a;}
void get_data( );
     private:
int num;
string name;
int age;
    };
 void Student::get_data()     //定义成员函数
     {cout<<num<<″ ″<<name<<″ ″<<age<<endl;
     }

 double fun(double a,double b)  //在命名空间ns1内定义fun函数
    {return sqrt(a+b);}
}

//header2.h ((头文件2)
#include <string>
#include <cmath>
using namespace std;
namespace ns2                      //声明命名空间ns2
 {class Student
{public:
Student(int n,string nam,char s)
{num=n;name=nam;sex=s;}
void get_data( );
private:
int num;
char name[20];
char sex;
};
void Student::get_data( )
   {cout<<num<<″ ″<<name<<″ ″<<sex<<endl;
}
double fun(double a,double b)
{return sqrt(a-b);}
 }

//main file (主文件)
#include <iostream>
#include ″cc14-5-h1.h″          //包含头文件1
#include ″cc14-5-h2.h″          //包含头文件2
using namespace std;
int main( )
{ns1::Student stud1(101,″Wang″,18);  //用命名空间ns1中声明的Student类定义stud1
stud1.get_data( );                  //不要写成ns1::stud1.get_data( );
cout<<ns1::fun(5,3)<<endl;         //调用命名空间ns1中的fun函数
ns2::Student stud2(102,″Li″,′f′);  //用命名空间ns2中声明的Student类定义stud2 
stud2.get_data( );
cout<<ns2::fun(5,3)<<endl;         //调用命名空间ns1中的fun函数
return 0;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -