C++和C语言一个很大的区别就是具有namespace命名空间。
一、命令空间的变量定义。
方式一:直接在main函数里分别定义命名空间的每个变量。
#include<iostream>
int main(void)
{
int a;
std::cin>>a;
std::cout<<"a="<<a<<std::endl;
return 0;
}
方式二:在main函数之前分别定义命名空间的每个变量。
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(void)
{
int a;
cin>>a;
cout<<"a="<<a<<endl;
return 0;
}
方式三:最简单的方法,一般都采用这种方法,即直接在main函数之前定义using namespace std。
#include<iostream>
using namespace std;
int main(void)
{
int a;
cin>>a;
cout<<"a="<<a<<endl;
return 0;
}
二、命名空间的定义。
定义一个名为SpaceA的命名空间,此处采用了命名空间变量定义的方式三,方式二和方式一可见注释。
#include<iostream>
using namespace std;
namespace SpaceA
{
int g_a=100;
}
int main(void)
{
using namespace SpaceA;
//方式二:using SpaceA::g_a;
cout<<g_a<<endl;
//方式三:cout<<SpaceA::g_a<<endl;
return 0;
}
三、定义空间的嵌套。
使用定义空间的嵌套时,一定要注意引用时要引用到底,否则会引起歧义,导致出错。
#include<iostream>
using namespace std;
namespace SpaceB
{
namespace SpaceC
{
struct student
{
int id;
char name[64];
};
}
}
int main(void)
{
SpaceB::SpaceC::student s1;
//using SpaceB::SpaceC::student;
//s1.id=10;
//using namespace SpaceB::SpaceC;
struct student s1;
s1.id=20;
cout<<s1.id<<endl;
}
网友评论