通過學習我們知道c語言是結構化和模組化的語言,適合處理較小規模的程式。對於複雜的問題,規模較大的程式,需要高度 的抽象和建模時,c語言則不合適。為了解決軟體危機, 20世紀80年代, 計算機界提出了oop(object oriented programming:物件導向)思想,支援物件導向的程式語言應運而生。 2023年,bjarne stroustrup博士在c語言的基礎上引入並擴充了物件導向的概念,發明了一種新的程式語 言。為了表達該語言與c語言的淵源關係,命名為c++。因此:c++是基於c語言而產生的,它既可以進行c語 言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行物件導向的程式設計。
此篇開始,就進入了c++的學習。我會把我學到的分享給大家!
對於剛學完c語言的人來說這是乙個新的名詞,那麼什麼是命名空間呢?在這舉個例子,各位的名字,在全國範圍可能會有重複的,那麼如果同名同姓的人分到乙個教室一起學習,老師需要點名讓同學回答問題,那麼問題來了,老師一叫名字,全班都站起來回答問題,那不就亂套了,但如果說出某個範圍內的名字是不就定下了是哪乙個人來回答問題。比如,xx省xx市xx區xx小區xx單元xx樓的某某某,即規定了是誰,那麼他就可以起來回答問題。在c++中也是如此,有時候我們定義的一些變數、函式等名稱將都存在於全域性作用域中,可能會導致很多衝突。使用命名空間的目的是對識別符號的名稱進行本地化,以避免命名衝突或名字汙染。
這裡就要引入關鍵字namespace
定義命名空間,需要使用到namespace關鍵字,後面跟命名空間的名字,然後接一對{}即可,{}中即為命名 空間的成員。
比如:
namespace student // student為該命名空間的名字
當然,命名空間內也可以包含函式比如
namespace fun //fun為該命名空間的名稱
}
除此之外,命名空間也是也可以巢狀定義的,比如:
namespace n1
namespace n2//n1命名空間下定義的n2命名空間
}}
在這裡,需要注意的是,同乙個工程中允許存在多個相同名稱的命名空間,編譯器會在最後合成同乙個命名空間。所以,在同乙個命名空間中切記不要定義名稱相同的變數,否則會造成重定義,進而出錯
那麼命名空間如何使用呢?命名空間有三種使用方式
1.加命名空間名稱及作用域限定符
namespace n1
}int
main()
2.使用關鍵字using將命名空間內成員引入`
namespace n1
}using n1:
:a;int
main()
3.使用using關鍵在直接將命名空間引入
namespace n1
}using namespace n1;
intmain()
在這裡,我推薦大家使用第一種命名空間的用法,因為,只要我前面只要有命名空間和作用域限定符就一定是某個空間下的某個變數,而剩下的兩種使用方法中,相當於將這個命名空間下的某個變數或者整個命名空間都暴露出來,如果此刻我定義了乙個相同變數名的全域性變數,那麼編譯器在編譯的時候,就不知道是選擇這個命名空間下的這個變數還是這個全域性變數,就會產生危險。因此,在這裡推薦大家第一種使用方法。
我們知道在c語言中,如果想要輸入輸出乙個變數,需要知道這個變數的型別,以及要帶上(" "),太繁瑣,而c++中,只需要標準輸出cout(控制台)和標準輸入cin(鍵盤),使用這兩個關鍵字時必須包含< iostream >標頭檔案以及std標準命名空間。
比如輸出
#include
using namespace std;
intmain()
注意尾部的endl是換行符,標準寫法std::endl,這裡可以簡寫為endl。而對於變數的輸出,也很簡單
#include
using namespace std;
intmain()
這樣就可以輸出乙個變數,我們並不需要知道它的型別,只需要加上<<這個即可
那麼輸入也是類似
#include
using namespace std;
intmain()
值得注意的是在使用cin和cout時分別對應》和<<,大家千萬不要弄混淆了哦,此外現如今大部分編譯器為了區別c和++的標頭檔案,規定c++的標頭檔案不用加.h,即帶.h的為c的頭檔案格式而不帶.h的為c++的頭檔案格式。 C 入門(3) 命名空間
命名空間是.net程式設計中的一種獨特技術,一般認為,命名空間是一種 容器,當我們把 放進命名空間中後,我們就可以根據命名空間的名字唯一確定的找到所需要的 需要說明的一點,命名空間是可以巢狀的,例如以下 是正確的 namespace level1 命名空間就像是乙個個不同大小的盒子,裡面儲存了我們需...
C 入門十六 命名空間
命名空間namespace 也可以成為命名空間,名字空間 當開發大型軟體時由多名程式設計師共同開發,會使用大量的變數和函式,不可避免的會出現變數或者命名衝突,為了解決合作開發時的命名衝突問題 例子 小紅和小明都參與了乙個檔案管理系統的開發,它們都定義了乙個全域性變數fp,用來指明當前開啟的檔案,將它...
c 中regex的命名空間 c 命名空間
system.transactions 命名空間 注意 此命名空間在 net framework 2.0 版中是新增的。使用 system.transactions 命名空間包含的類可以編寫自己的事務應用程式和資源管理器。具體地說,可以建立和參與 與乙個或多個參與者 本地或分布式事務。system....