?? 例14.5.txt
字號(hào):
例14.5 利用命名空間來(lái)解決例14.4程序名字沖突問(wèn)題。
修改兩個(gè)頭文件,把在頭文件中聲明的類分別放在兩個(gè)不同的命名空間中。
//header1.h (頭文件1)
#include <string>
#include <cmath>
using namespace std;
namespace ns1//聲明命名空間ns1
{class Student //在命名空間ns1內(nèi)聲明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() //定義成員函數(shù)
{cout<<num<<″ ″<<name<<″ ″<<age<<endl;
}
double fun(double a,double b) //在命名空間ns1內(nèi)定義fun函數(shù)
{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; //調(diào)用命名空間ns1中的fun函數(shù)
ns2::Student stud2(102,″Li″,′f′); //用命名空間ns2中聲明的Student類定義stud2
stud2.get_data( );
cout<<ns2::fun(5,3)<<endl; //調(diào)用命名空間ns1中的fun函數(shù)
return 0;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -