日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

C++学习笔记第二天:几个知识点

發(fā)布時(shí)間:2025/7/14 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习笔记第二天:几个知识点 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一天,囫圇吞棗的把C++的基本概念擼了一遍

有幾個(gè)地方不太理解,今天有針對(duì)性的學(xué)習(xí)一下

?

1、namespace

自定義命名空間,主要為了解決類、函數(shù)和全局變量的命名沖突問(wèn)題。

調(diào)用某個(gè)命名空間里的符號(hào)時(shí),需要使用格式:命名空間::符號(hào)名稱

#include <iostream> using namespace std; namespace first {int var = 5; }namespace second {double var = 3.1416; }int main () {cout << first::var << endl;cout << second::var << endl;return 0; }

結(jié)果是
5
3.1416
兩個(gè)全局變量都是名字都是var,但是他們不在同一個(gè)namespace中所以沒(méi)有沖突。

關(guān)鍵字using可以幫助從namespace中引入名字到當(dāng)前的聲明區(qū)域

#include <iostream> using namespace std;namespace first {int x = 5;int y = 10; }namespace second {double x = 3.1416;double y = 2.7183; }int main () {using first::x;using second::y;cout << x << endl;cout << y << endl;cout << first::y << endl;cout << second::x << endl;return 0; }

輸出是
5
2.7183
10
3.1416
就如我們所指定的第一個(gè)x是first::x,y是second.y

?

namespace也支持嵌套

需要注意的時(shí),盡量不要在頭文件中使用using namespace,因?yàn)轭^文件的引用具有不確定性,因此一旦在頭文件中整體using了某個(gè)namespace,那么有可能會(huì)造成名稱污染。

總而言之,using namespace 應(yīng)盡可能的限制在小范圍的作用域內(nèi)。

?

2、頭文件與源文件

頭文件的后綴:.h,不需要編譯,主要用于變量和函數(shù)的聲明,而不必完成具體的實(shí)現(xiàn),起到一個(gè)接口的作用。

源文件的后綴:.cpp,需要進(jìn)行編譯,主要存放函數(shù)的具體實(shí)現(xiàn)。

我的理解是:

在C++中,任何的符號(hào)(函數(shù)或者變量)都需要事先聲明之后才可以調(diào)用。

假設(shè)有兩個(gè)cpp源文件A和B,在A中定義了函數(shù)AFun,那如果B中需要調(diào)用這個(gè)AFun的話,也需要用同樣的格式進(jìn)行聲明,然后才可以調(diào)用到AFun。

如果這個(gè)AFun是一個(gè)使用率很高的函數(shù),或者A中還有很多類似的函數(shù),那么所有需要這些函數(shù)的源文件都要被迫進(jìn)行一系列的聲明

頭文件就是解決這個(gè)問(wèn)題的,將A中所有使用率比較高的函數(shù)聲明編寫成一個(gè)獨(dú)立的頭文件,那其他源文件只需include這個(gè)頭文件即可,無(wú)需將里面的函數(shù)再聲明一遍。

值得注意的是,如果在頭文件中聲明變量,應(yīng)該加上 extern 前綴,否則如果有兩個(gè)以上的源文件引用這個(gè)頭文件時(shí),會(huì)提示編譯錯(cuò)誤。

有一篇文章說(shuō)的非常好,鏈接在此:http://blog.csdn.net/chillon_liao/article/details/44261921

?

3、extern

extern 存儲(chǔ)類用于提供一個(gè)全局變量的引用,全局變量對(duì)所有的程序文件都是可見(jiàn)的。當(dāng)您使用 'extern' 時(shí),對(duì)于無(wú)法初始化的變量,會(huì)把變量名指向一個(gè)之前定義過(guò)的存儲(chǔ)位置。
當(dāng)您有多個(gè)文件且定義了一個(gè)可以在其他文件中使用的全局變量或函數(shù)時(shí),可以在其他文件中使用 extern 來(lái)得到已定義的變量或函數(shù)的引用。可以這么理解,extern 是用來(lái)在另一個(gè)文件中聲明一個(gè)全局變量或函數(shù)。
extern 修飾符通常用于當(dāng)有兩個(gè)或多個(gè)文件共享相同的全局變量或函數(shù)的時(shí)候

第一個(gè)文件:main.cpp

#include <iostream>int count ; extern void write_extern();int main() {count = 5;write_extern(); }

第二個(gè)文件:support.cpp

#include <iostream>extern int count;void write_extern(void) {std::cout << "Count is " << count << std::endl; }

最后輸出:

Count is 5

?


寵辱不驚,看庭前花開(kāi)花落;去留無(wú)意,望天上云卷云舒

總結(jié)

以上是生活随笔為你收集整理的C++学习笔记第二天:几个知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。