C++中雙冒號(hào)::用法案例詳解
C++中的雙冒號(hào) ::
- 第一種,類(lèi)作用域,用來(lái)標(biāo)明類(lèi)的變量、函數(shù)
Human::setName(char* name);
- 第二種,命名空間作用域,用來(lái)注明所使用的類(lèi)、函數(shù)屬于哪一個(gè)命名空間的
std::cout << "Hello World" << std::endl;
- 第三種,全局作用域,用來(lái)區(qū)分局部、全局的。最容易被忽視的一種,很多時(shí)候?qū)懥艘粋€(gè)全局函數(shù)或者想要調(diào)用一個(gè)全局函數(shù),卻發(fā)現(xiàn)IDE或者Editor找不到該函數(shù),原因是因?yàn)榫植亢瘮?shù)與想要調(diào)用的全局函數(shù)名字一樣,然后找了很久也找不到原因,甚至放棄解決的。其實(shí)原因就是因?yàn)?【局部變量/函數(shù)】 與 【全局變量/函數(shù)】 的名字相同,IDE無(wú)法區(qū)分,這時(shí)候加上 :: 就可以調(diào)用到全局函數(shù),訪問(wèn)到全局變量了。
舉個(gè)例子:
Linux下串口打開(kāi)、關(guān)閉的api
// fcntl.h文件下的全局函數(shù)open open (const char *__path, int __oflag, ...) // unistd.h文件下的全局函數(shù) extern int close (int __fd);
由于每次找api是一件非常浪費(fèi)coding時(shí)間,而且是沒(méi)多大意義的事情,我現(xiàn)在要將這個(gè)函數(shù)封裝成一個(gè)我自己的個(gè)人串口庫(kù)WzSerialPort.h、WzSerialPort.cpp
// WzSerialPort.h
class WzSerialPort
{
public:
// ...
bool open();
void close();
// ...
};
注意以下的cpp文件,如果沒(méi)有 :: 則會(huì)報(bào)錯(cuò)誤,因?yàn)閃zSerialPort庫(kù)中有函數(shù)open和close,跟全局函數(shù)open和close名字相同,如果不做全局與局部的區(qū)分,則無(wú)法調(diào)用到全局函數(shù)
// WzSerialPort.cpp
bool WzSerialPort::open()
{
if( ::open(portname,O_RDWR|O_NOCTTY|O_NONBLOCK) != -1 )
return true;
else
return false;
}
void WzSerialPort::close()
{
::close(fd);
}
到此這篇關(guān)于C++中雙冒號(hào)::用法案例詳解的文章就介紹到這了,更多相關(guān)C++中雙冒號(hào)::用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
C語(yǔ)言順序表的基本操作(初始化,插入,刪除,查詢(xún),擴(kuò)容,打印,清空等)
這篇文章主要介紹了C語(yǔ)言順序表的基本操作(初始化,插入,刪除,查詢(xún),擴(kuò)容,打印,清空等),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-02-02
CString,字符串,整數(shù)等相互轉(zhuǎn)換方法(推薦)
下面小編就為大家?guī)?lái)一篇CString,字符串,整數(shù)等相互轉(zhuǎn)換方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
C++如何實(shí)現(xiàn)字符串的部分復(fù)制
這篇文章主要介紹了C++如何實(shí)現(xiàn)字符串的部分復(fù)制問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
C語(yǔ)言簡(jiǎn)明講解快速排序的應(yīng)用
快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實(shí)實(shí)用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個(gè),還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影2022-05-05
C/C++語(yǔ)言中結(jié)構(gòu)體的內(nèi)存分配小例子
當(dāng)未用 #pragma 指令指定編譯器的對(duì)齊位數(shù)時(shí),結(jié)構(gòu)體按最長(zhǎng)寬度的數(shù)據(jù)成員的寬度對(duì)齊;當(dāng)使用了 #pragma 指令指定編譯器的對(duì)齊位數(shù)時(shí),結(jié)構(gòu)體按最長(zhǎng)寬度的數(shù)據(jù)成員的寬度和 #pragma 指令指定的位數(shù)中的較小值對(duì)齊2013-10-10
c++和python實(shí)現(xiàn)順序查找實(shí)例
這篇文章主要介紹了c++和python實(shí)現(xiàn)順序查找實(shí)例,流程即將目標(biāo)數(shù)值和數(shù)據(jù)庫(kù)中的每個(gè)數(shù)值進(jìn)行比較,如果相同則搜索完成,如果不同則繼續(xù)比較下一處,下面來(lái)看看具體的實(shí)例操作吧,需要的朋友可以參考一下2022-03-03

