C++ 名称空间

名称空间

使用关键字namespace创建一个名称空间

namespace Jill
{
	double fetch;
	int data;
}

通过作用域解析运算符::来访问给定名称空间中的名称

Jill::data = 10;

using声明

using声明由被限定的名称和它前面的关键字using组成

using Jill::fetch

using编译指令

using编译指令由名称空间名和它前面的关键字using namespace组成,它使名称空间中的所有名称都可用,而不需要使用作用域解析运算符。

using namespace Jill;

名称空间可以嵌套

namespace element
{
	namespace file
	{
		int flame;
	}
	float water;
}

这里的flame是指element::file::flame
可以使用下面的using编译指令使内部的名称可用

using namespace element::file;

也可以在名称空间中使用using编译指令和using声明

namespace myth
{
	using Jill::fetch;
	using namespace element;
}

由于Jill::fetch现在位于名称空间myth,在这里,它被叫做fetch,因此可以这样访问它

myth::fetch;

未命名的名称空间

namespace
{
	int ice;
	int water;
}

该名称空间中声明的名称的潜在作用域为:从声明点到声明区域末尾。具体地说,不能再未命名名称空间所属文件之外的其他文件中,使用名称空间中的名称。这提供了链接性为内部的静态变量的替代品。

static int counts;
int main()
{

}

等同下方:

namespace 
{
	int counts;
}
int main()
{

}

使用demo

#ifndef DEMO_H_
#define DEMO_H_
#include<iostream>
namespace test
{
    struct person
    {
        std::string name;
        int age;
    };
    //可以使用struct person 或者person
    person setperson(person &);
    void showperson(const person &);
}
#endif
#include"demo2.h"

namespace test
{
    using std::cout;
    using std::cin;
    //可以使用struct person 或者person
    person setperson(person & per)
    {
        cout << "please input the information of person:" << std::endl;
        cout << "intput name \n";
        cin >> per.name;
        cout << "intput age \n";
        cin >> per.age;
        return per;
    }
    void showperson(const person & per)
    {
        using std::cout;
        cout << "per.name = " << per.name << " ";
        cout << "per.age = " << per.age<<std::endl;
    }

}

#include"demo2.h"

int main()
{
    using namespace test;
    person p1;
    person p2;
    p2 = setperson(p1);
    showperson(p2);
    return 0;
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃秃秃秃哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值