名空间(namespace)

在C++编程中,变量和函数等的作用范围是有限制的,在函数内定义的变量就不可以在函数外使用。引入名空间(namespace)可解决变量和函数的作用范围。

在一个名空间中可以定义一组变量和函数,这些变量和函数的作用范围是一样的,可以将这些变量和函数称为这个名空间的成员。

通过名空间,可以在一个文件中使用相同的变量名或函数名,前提条件是它们属于不同的名空间。名空间可以使得代码操作具有相同名字但属于不同库的变量,而且,名空间也可以提高C语言与C++语言的兼容性。

using :using的使用提高了程序的方便性,使用using 可以在引用名空间成员时不必使用名空间限定符::。using与namespace的结合使用对函数重载有一定的影响。

注意:在调用函数时,如果实参与形参的数据类型无法完全匹配,这种情况下可能会对实参进行数据类型转换。有可能char类型转换为int类型,或int类型转化为double类型,常常是由简单数据类型向复杂数据类型转换,有可能会丢失数据精度。

#include <conio.h>
#include <iostream.h>
namespace family //名空间的定义
{
    char* name; //姓名
    int age; //年龄
    int sex; //性别
}

namespace car //名空间的定义
{
    int model;
    namespace size
    {
        int length;
        int width;
    }
}

namespace family //添加名空间的成员
{
    bool fly;
}

namespace f = family; //定义名空间的别名
namespace c = car; //定义名空间的别名
int PlayTime; //外部变量属于全局名空间

itn main(int argc, char* argv[])
{
    //采用名空间
    family::name = "XiaoMing";
    car::size::length = 50;
    cout <<"The Family's name is :"<<family::name<<endl; //输出XiaoMing
    cout<<"The Car's size length is"<<car::size::length<<endl; //输出50
    //采用名空间的别名
    cout<<"The Family's name is :"<<f::name<<endl; //XiaoMing
    cout<<"The Car's size is :"<<c::size<<endl; //50
    int PlayTime = 100; //临时变量,应区别于全局变量
    ::PlayTime = 101;
    
    cout<<"Temporary PlayTime is:"<<PlayTime<<endl; //输出100
    cout<<"Outer PlayTime is:"<<::PlayTime<<endl; //输出101
    
    using namespace car; //使用关键字using
    model = 2021;
    size::length = 20;
    
    cout<<"Using namespace car model:"<<model<<endl; //输出2021
    cout<<"Using namespace car size length"<<length<<endl; //输出20
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值