认识一下C++ 《命名空间》

C++语言引入命名空间(Namespace)这一概念主要是为了避免命名冲突,其关键字为namespace

在团队开发中,命名的使用就会体现出来:例如在同一个工程里

  int  flag = 1;      //小明声明的变量
  // ……             //中间间隔若干行代码
  bool flag = true;   //小红声明的变量

2个人的编程习惯不一样,一个偏爱int 变量进行逻辑判断,另一个偏爱bool 逻辑判断,如果把这2个变量放在同一个函数编译?
编译不通过。

哪怎么解决呢?
答:可以使用命名空间解决类似上面的命名冲突问题。

例如:

namespace Ming{   //小明的变量声明
int flag = 1;
}
namespace Hong{   //小红的变量声明
bool flag = true;
}

如果再次放到同一个函数编译是可以通过的。这里有个注意点,就是要指定一个具体是哪个 “命名空间”。

指定所使用的变量时需要用到 “::” 操作符,“::” 操作符是域解析操作符。例如:

Ming::flag = 0;        //使用小明定义的变量flag
Hong::flag = false;   //使用小红定义的变量flag

命名空间完整示例代码:

#include <iostream>
//将类定义在命名空间中
namespace myName{

class Student{
public:
    char *name;
    int age;
    float score;
    
public:
    void say(){
        printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
    }
};
}

int main(int argc, const char * argv[]) {

    myName::Student stu1; // 
    stu1.name = "小明";
    stu1.age = 6;
    stu1.score = 98.5;
    stu1.say();
    
return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的...
    IvanRunning阅读 2,393评论 0 2
  • 本文转载自:C++ 命名空间namespace 在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、...
    Yihulee阅读 5,071评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,999评论 19 139
  • 提出问题 解决问题--命名空间的使用 PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C...
    洞房花猪阅读 2,863评论 0 3
  • 命名空间是一种封装事物的方法,在php中,可以看做是组织代码的一种形式。例如,在操作系统中用目录来把不同的文件分组...
    小羊羊爱吃饭阅读 843评论 0 0