namespace的用法和作用(轉載)
在大型軟體開發專案中,型別和函式名衝突是常有的事,如:定義專用型別時就常常不只一次地使用相同的名字。為了避免這個問題。人們通常在程式碼中使用不同的詞綴,由此造成程式碼很難管理、使用、閱讀和編輯。碰到這種問題常常使人鬱悶非常而且容易出錯。看看下面的程式碼:
class string {
//這個類名雖然短小精幹,意思表達明確,但是它已經被別人使用,你不能再用它作為類名了!
//...
};
class CMYExclusive_string {
// 這倒是個較安全的名字,但是太冗長乏味。不斷重複這樣的名字會影響自己的心情。 // 況且這樣處理還是有名字衝突的可能
//...
}
為了較好地解決這個問題,C++ 提供了規定名字空間的手段,也就是用 namespaces 關鍵字。有了它,在自己程式碼中規範地命名型別和函式的自由度就大多了,有了它,你就可以充分使型別和函式的命名簡潔、易於理解、使用方便和安全。從而擺脫了哪些在定義和宣告中冗長乏味的詞綴。你可以在名字空間中對型別或者函式進行分類,為型別和函式的使用繫上安全帶,例如:
// 某個標頭檔案 vckbaseExcelSoft.h
namespace vckbaseFSDUexcelSoft_ {
class string {
//...
};
class vector {
//...
};
//...etc.
}
接著可以象下面這樣存取型別資料:
#include "vckbaseExcelSoft.h"
void main() {
using namespace vckbaseFSDUexcelSoft_;
string s; // 引用 名字空間 vckbaseFSDUexcelSoft_裡的 string vckbaseFSDUexcelSoft_::string
// 下面又回到標準的 string
std::string mySTDstr;
}
相關推薦
namespace的用法和作用(轉載)
在大型軟體開發專案中,型別和函式名衝突是常有的事,如:定義專用型別時就常常不只一次地使用相同的名字。為了避免這個問題。人們通常在程式碼中使用不同的詞綴,由此造成程式碼很難管理、使用、閱讀和編輯。碰到這種問題常常使人鬱悶非常而且容易出錯。看看下面的程式碼: cl
Object類的用法和作用
object類 用法 方法 屬性 getc 個人 返回 字符串 tcl 一: 現實世界中, 每個人都有自己的父親。類也是這樣,每個類都有一個父類,這個父類是 java.lang.Object。 因此,隨意創建一個類,其實也不是空的,起碼這個類中有Object類中的屬性和方法
js中window.location.search的用法和作用。
bst 地址 用法 屬性獲取 net bstr src log 協議 用該屬性獲取頁面 URL 地址: window.location 對象所包含的屬性 屬性描述 hash 從井號 (#) 開始的 URL(錨) host 主機名和當前 URL 的端口號 h
js運算符單豎杠“|”的用法和作用及js數據處理
blank lan math float http fix www. rip 規則 很多朋友都對雙豎杠“||”,了如指掌,因為這個經常用到。但是大家知道單豎杠嗎? 看JavaScript實用技巧,js小知識文章時,看到了單豎杠“|”運算,對它很陌生。 學習並掌握
mybatis中@Param的用法和作用
配置 pre tis 內容 RF 數值 package col ML 用註解來簡化xml配置的時候,@Param註解的作用是給參數命名,參數命名後就能根據名字得到參數值,正確的將參數傳入sql語句中 我們先來看Mapper接口中的@Select方法 packag
package的用法和作用
關鍵字-package 格式,第一行,package 包名.子包名。子子包名 作用,告訴編譯器把當前原始檔的所有類在編譯生成.class檔案後,要儲存的包目錄結構是什麼 package 機構型別.結構名稱.專案名稱.模組名稱 前兩
HTML label基本用法和作用效果
<label.../>用於表單元素中定義標籤進行說明, label並不生成請求引數所以不要給label指定value值 問題來了,普通文字就能作為標籤,為什麼要用label標籤呢? 因為label還有一個額外的效果,點選該標籤瀏覽器會自動把焦點轉移到標籤相關
@Autowired的用法和作用
@Autowired的用法和作用 這個註解就是spring可以自動幫你把bean裡面引用的物件的setter/getter方法省略,它會自動幫你set/get。 <bean id="use
python路徑拼接os.path.join()函式用法和作用
os.path.join()函式用於路徑拼接檔案路徑。 os.path.join()函式中可以傳入多個路徑: 會從第一個以”/”開頭的引數開始拼接,之前的引數全部丟棄。 以上一種情況為先。在上一種情況確保情況下,若出現”./”開頭的引數,會從”./”開頭的引數
android中泛型方法的用法和作用
舉個例子 首先我的activity中 @Route(path = "/datainit/DataInitActivity") class DataInitActivity: BaseActivity(){ override fun onCreate(savedInstan
Mybatis中@Param的用法和作用詳解
用註解來簡化xml配置的時候,@Param註解的作用是給引數命名,引數命名後就能根據名字得到引數值,正確的將引數傳入sql語句中我們先來看Mapper介面中的@Select方法?1234567package Mapper; public interface Mapper {
proguard-project.txt 檔案的用法和作用
1、在安卓程式里根目錄下有個檔案:proguard-project.txt 這個檔案是混淆程式碼的工具。 讓proguard.project起作用的做法很簡單,就是在eclipse自動生成的defau
Java的try...catch的用法和作用(為什麼要用try...catch)
當程式執行過程中發生錯誤時,就會“ 丟擲異常',丟擲異常比終止程式要靈活得多,這是因為可以提供一個“ 捕獲” 異常的處理器 (handler) 對異常情況進行處理。 如果沒有提供處理器,程式就會終止,並在控制檯上打印出一條資訊, 其中給出了異常的型別。可能在前面已經看到過一
sql語句中as的用法和作用
最近做專案中,偶然發現在SQL語句中出現了as這個詞,一直以來沒怎麼關注是什麼意思,畢竟影響不大,今天有空,就在網上查了一些資料,大概有了一些的瞭解 我們的Sql語句在很多資料庫中都是通用的,比如像Mysql資料庫 Access資料庫. Oracle資料庫. Sqlite資料庫 .甚至在我們的Exce
header() 函式的用法和作用
定義和用法 header() 函式向客戶端傳送原始的 HTTP 報頭。 認識到一點很重要,即必須在任何實際的輸出被髮送之前呼叫 header() 函式(在 PHP 4 以及更高的版本中,您可以使用輸出快取來解決此問題): <html> <?php // 結果出錯 // 在呼叫 heade
mysql資料庫FULLTEXT索引的用法和作用
注意事項: 1、MySQL 4.x版本及以上版本提供了全文檢索(備註:FULLTEXT)支援,但是表的儲存引擎型別必須為MyISAM。 2、建立方法: 修改表結構新增全文索引 ALTER TABLE article ADD FULLTEXT
php中名稱空間(namespace)的作用和使用
1.名稱空間的作用: 在PHP中函式、類、常量是不允許同名的。為了解決這三者的同名問題,所以出現了名稱空間. 其實不僅僅是php,其他語言也有類似的使用。比如JavaScript中: 我們來詳細的講解一下PHP中的名稱空間: 語法:namespace 空間名\空間名;
SQL中distinct的用法 和 SQL Union作用
SQL Union作用 動態構造一個SQL語句然後執行,構造動態語句的查詢語句如下 SELECT REPLACE(WMSYS.WM_CONCAT(STR),',',' UNION ') FROM (SELECT 'SELECT class_no,stu_name,sex,age FROM ' |
C++虛基類的作用、用法和意義
教科書上面對C++虛基類的描述玄而又玄,名曰“共享繼承”,名曰“各派生類的物件共享基類的的一個拷貝”,其實說白了就是解決多重多級繼承造成的二義性問題。例如有基類B,從B派生出C和D,然後類F又同時繼承了C和D,現在類F的一個物件裡面包含了兩個基類B的物件,如果F訪問自己的從
conn.setAutoCommit()用法及作用(轉載)
事務操作資料: (一) eg: 假如銀行轉賬系統 從張三的賬戶轉1000元到小羅的賬戶 這個操作需要分兩步 1.張三賬戶減少1000元 2.小羅賬戶增加1000元 假如於到斷電等等,而剛好張三減了1000,而此時小羅卻不增加。。。。可以想象銀行這下有事做了 所以