命名空間為了大專案開發,而引入的一種避免命名衝突的一種機制。比如說,在乙個大型的專案中,要用到多家軟體開發商提供的類庫。在事先沒有約定好的情況下,兩套類庫可能在存在同名的函式或是全域性變數而發生衝突。專案越大,用到的類庫越多,開發人員越多,這種衝突就越明顯。
global scope 是乙個程式中最大的scope。也是引起命名衝突的根源。c語言沒有從語言層面提供這種機制來解決。也算是c語言的硬傷了。global scope是無名的命名空間。
//c語言中如何訪問被區域性變數覆蓋的全域性變數
int val = 200;
int main()
#include #include using namespace std;
int val = 200;
void func()
int main()
; 函式 void func();
其他命名空間namespace
}
1、直接定義 命名空間: space::a = 5;
2、使用 using+命名空間+空間元素: using space::a; a = 2000;
3、使用 using+namespace+命名空間: using namespace space;
#include #include using namespace std;
namespace myspace
int main()
namespace other
int main()
}int main();}
#endif //a_h
a.cpp
#include "a.h"
namespace xx
a::~a()
}
b.h
#ifndef b_h
#define b_h
namespace xx
}#endif //b_h
b.cpp
#include "b.h"
namespace xx
b::~b()
}
main.cpp
#include #include "a.h"
#include "b.h"
using namespace std;
using namespace xx;
int main()
除了使用字串陣列來處理字串以外,c++引入了字串型別。可以定義字串變數。
#include #include using namespace std;
int main()
;for (int i=0; i<10; i++)
{ cout在c++中幾乎不需要用巨集,用const或enum定義顯示的常量。用inline避免函式呼叫的額外開銷,用模板去刻畫一族函式或型別,用namespace去避免命名衝突。
不要在你需要變數之前去宣告,以保證你能立即對它進行初始化。
不要用malloc,new運算子會做的更好。
避免使用void *、指標算術、聯合和強制,大多數情況下,強制都是設計錯誤的指示器。
盡量少用陣列和c風格的字串,標準庫中的string和vector可以簡化程式。
更加重要的是,試著將程式考慮為一族由類和物件表示的相互作用的概念,而不是一堆資料結構和一些可以撥弄的二進位制。
第一章 C 程式設計
今天終於下定決心將資料結構與演算法重新在複習一遍,先是c 的一些比較容易忘記的特性簡單的溫習一遍 包括遞迴呼叫,異常操作,類模板,函式模板等等,這三天寫得原始碼如下 book name c structure and algorithm filename chapter1.cpp version 1...
C 第一章作業
n實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式。作業一 include 編譯預處理命令 u...
第一章 C 簡介
1.net framework包含了龐大的 庫和.net framework公共語言執行庫 common language runtime,clr 2.net平台整體架構 1.使用.net framework編譯 的兩個階段 c 通用的中間語言 common intermediate languag...