认识一下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 
//将类定义在命名空间中
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;
}

你可能感兴趣的:(认识一下C++ 《命名空间》)