0
点赞
收藏
分享

微信扫一扫

C++命名空间namespace

我是芄兰 2022-01-25 阅读 90

C++命名空间namespace_#include

作用:避免变量或函数的命名冲突 

定义:

namespace 名字空间名{

名字空间成员1;

名字空间成员1;

......

}

注意:名字空间成员可以是全局函数、全局变量、类型、名字空间

实例

#include <iostream>

namespace ns1 {
void func() {
std::cout << "ns1的func" << std::endl;
}
}
namespace ns2 {
void func() {
std::cout << "ns2的func" << std::endl;
}
}



int main()
{
//func(); 不能直接访问
ns1::func();
ns2::func();



system("pause"); //暂停
}
using namespace 名字空间名
#include <iostream>



namespace ns1 {
void func() {
std::cout << "ns1的func" << std::endl;
}
}
namespace ns2 {
void func() {
std::cout << "ns2的func" << std::endl;
}
}



int main()
{
using namespace ns1;
func(); //可以省略ns1::
ns2::func();



system("pause"); //暂停
}
#include <iostream>

namespace ns1 {
void func() {
std::cout << "ns1的func" << std::endl;
}
}
namespace ns2 {
void func() {
std::cout << "ns2的func" << std::endl;
}
}



int main()
{
using ns1::func;
func(); //可以省略ns1::
ns2::func();


system("pause"); //暂停
}
#include <iostream>

namespace ns1 {
void func() {
std::cout << "ns1的func" << std::endl;
}
}
namespace ns2 {
void func() {
std::cout << "ns2的func" << std::endl;
}
}



int main()
{
using ns1::func; //声明方法一
using namespace ns2; //声明方法二
func(); //执行的是ns1的func
//以声明方法一为主


system("pause"); //暂停
}

名字空间的嵌套

#include <iostream>

namespace ns1 {
int num = 100;
namespace ns2 {
int num = 200;
namespace ns3 {
int num = 300;
}
}
}

int main()
{
std::cout << ns1::ns2::num << std::endl; //输出值200

system("pause"); //暂停
}

名字空间的合并

两个同名空间会自动合并,但两个空间中不能有同名成员或函数

#include <iostream>

namespace ns1 {
int unm = 100;
}
namespace ns1 {
int unm1 = 200;
}

int main()
{
std::cout << ns1::unm << std::endl;
std::cout << ns1::unm1 << std::endl;

system("pause"); //暂停
}


举报

相关推荐

0 条评论