#include<stdio.h>
namespace space1
{
int a = 2;
}
int a = 0;
int main()
{
int a = 1;
printf("%d\n", a);//查找局部域
printf("%d\n", ::a);//查找全局域
printf("%d\n", space1::a);//查找命名空间域
return 0;
}
(4)namespace可以嵌套定义
cpp复制代码
#include<stdio.h>
namespace space
{
namespace people1
{
int a = 1;
}
namespace people2
{
int a = 2;
}
}
int main()
{
//访问people1:
printf("%d\n", space::people1::a);
//访问people2:
printf("%d\n", space::people2::a);
}
#include<stdio.h>
namespace yzc
{
int a = 1;
int b = 2;
}
using yzc::b;
int main()
{
//第一种:使用域作用限定符
printf("%d\n", yzc::a);
//第二种:使用using展开命名空间的指定成员
//适用于项目中经常访问但不冲突的成员
b = 100;
printf("%d\n", b);
return 0;
}
cpp复制代码
#include<stdio.h>
namespace yzc
{
int a = 1;
int b = 2;
}
//第三种:使用using展开命名空间的全部成员
using namespace yzc;
int main()
{
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
//输出:
//使用using展开命名空间全部成员
#include<iostream>
using namespace std;
int main()
{
int a = 0;
char b = 'm';
float c = 9.1;
cout << a <<' ' << b <<' '<< c <<' '<< endl;//endl
cout << a << ' ' << b << ' ' << c << ' ' << '\n';//'\n'
cout << a << ' ' << b << ' ' << c << ' ' << "\n";//"\n"
return 0;
}
cpp复制代码
//输出:
//使用域作用限定符访问成员
#include<iostream>
int main()
{
int a = 0;
char b = 'm';
float c = 9.1;
std::cout << a << ' ' << b << ' ' << c << ' ' << std::endl;//endl
std::cout << a << ' ' << b << ' ' << c << ' ' << '\n';//'\n'
std::cout << a << ' ' << b << ' ' << c << ' ' << "\n";//"\n"
return 0;
}
cpp复制代码
//输入+输出:
#include<iostream>
using namespace std;
int main()
{
int a;
char b;
float c;
cin >> a >> b >> c;
cout << a <<' '<< b <<' '<< c << endl;
return 0;
}
注:
cpp复制代码
//加入以下代码可以提高输入输出效率,比如在竞赛题中
//或者交替使用C语言中的printf和scanf
#include<iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
return 0;
}
三.缺省参数(默认参数)
1.声明或定义函数时给函数参数与一个缺省值。即在调用时,若没有指定实参大小则采用形参的缺省值。
2.缺省参数分为全缺省和半缺省。
全缺省即全部形参都有缺省值,半缺省即部分形参有缺省值。
3.半缺省规定形参从右往左给缺省值且不能跳跃给缺省值。
实参必须从左往右给值,且实参对应形参若无缺省值则必须给实参赋予值。
4.函数声明和定义分离时,缺省参数只能在函数声明中出现。
cpp复制代码
#include<iostream>
using namespace std;
void add(int x = 1, int y = 2)
{
cout<<x+y<<endl;
}
int main()
{
add();//1 + 2 = 3
add(2);//2 + 2 = 4
add(3, 3);//3 + 3 = 6
return 0;
}