C++語言引入命名空間(Namespace)這一概念主要是為了避免命名沖突,其關(guān)鍵字為namespace
躯喇。
在團(tuán)隊開發(fā)中藤抡,命名的使用就會體現(xiàn)出來:例如在同一個工程里
int flag = 1; //小明聲明的變量
// …… //中間間隔若干行代碼
bool flag = true; //小紅聲明的變量
2個人的編程習(xí)慣不一樣侠碧,一個偏愛int 變量進(jìn)行邏輯判斷,另一個偏愛bool 邏輯判斷缠黍,如果把這2個變量放在同一個函數(shù)編譯弄兜?
編譯不通過。
哪怎么解決呢瓷式?
答:可以使用命名空間解決類似上面的命名沖突問題替饿。
例如:
namespace Ming{ //小明的變量聲明
int flag = 1;
}
namespace Hong{ //小紅的變量聲明
bool flag = true;
}
如果再次放到同一個函數(shù)編譯是可以通過的。這里有個注意點贸典,就是要指定一個具體是哪個 “命名空間”视卢。
指定所使用的變量時需要用到 “::” 操作符,“::” 操作符是域解析操作符廊驼。例如:
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;
}