認(rèn)識(shí)一下C++ 《命名空間》

C++語言引入命名空間(Namespace)這一概念主要是為了避免命名沖突,其關(guān)鍵字為namespace

在團(tuán)隊(duì)開發(fā)中,命名的使用就會(huì)體現(xiàn)出來:例如在同一個(gè)工程里

  int  flag = 1;      //小明聲明的變量
  // ……             //中間間隔若干行代碼
  bool flag = true;   //小紅聲明的變量

2個(gè)人的編程習(xí)慣不一樣,一個(gè)偏愛int 變量進(jìn)行邏輯判斷,另一個(gè)偏愛bool 邏輯判斷,如果把這2個(gè)變量放在同一個(gè)函數(shù)編譯?
編譯不通過。

哪怎么解決呢?
答:可以使用命名空間解決類似上面的命名沖突問題。

例如:

namespace Ming{   //小明的變量聲明
int flag = 1;
}
namespace Hong{   //小紅的變量聲明
bool flag = true;
}

如果再次放到同一個(gè)函數(shù)編譯是可以通過的。這里有個(gè)注意點(diǎn),就是要指定一個(gè)具體是哪個(gè) “命名空間”。

指定所使用的變量時(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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、 為什么需要命名空間(問題提出) 命名空間是ANSIC++引入的可以由用戶命名的作用域,用來處理程序中 常見的...
    IvanRunning閱讀 2,380評論 0 2
  • 本文轉(zhuǎn)載自:C++ 命名空間namespace 在C++中,名稱(name)可以是符號(hào)常量、變量、宏、函數(shù)、結(jié)構(gòu)、...
    Yihulee閱讀 5,065評論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 提出問題 解決問題--命名空間的使用 PHP的命名空間(namespace)是php5.3之后才有的。這個(gè)概念在C...
    洞房花豬閱讀 2,854評論 0 3
  • 命名空間是一種封裝事物的方法,在php中,可以看做是組織代碼的一種形式。例如,在操作系統(tǒng)中用目錄來把不同的文件分組...
    小羊羊愛吃飯閱讀 822評論 0 0