建筑公司網(wǎng)站md0095設(shè)計風格荊門網(wǎng)絡(luò)推廣
面試題1:c語言中的static和c++中的static的用法
在c語言中:
1.static修飾的全局變量作用域限制在當前文件,無法被外部文件所引用。2.static修飾的局部變量延長生命周期,但不改變作用域,同樣無法被外部文件所引用。3.static修飾的指針不能指向auto類型的地址,因為static類型的指針先分配地址。4.static修飾函數(shù)使函數(shù)具有內(nèi)部鏈接,只能在當前文件訪問,避免了其他文件中的同名函數(shù)沖突。
在c++中:
1.static修飾的成員在文件編譯時分配空間,不占用該成員的類對象中的空間,可以不實例化對象直接調(diào)用。2.static修飾成員函數(shù)時,該成員函數(shù)屬于類中的,不屬于類對象,可以不實例化對象直接通過類名加域限定符進行調(diào)用,該靜態(tài)成員函數(shù)不能調(diào)用類中的非靜態(tài)成員變量,只能調(diào)用靜態(tài)成員變量。3.static修飾的成員函數(shù)相當于在類中定義了一個全局函數(shù),對類中的同名非靜態(tài)成員函數(shù)不構(gòu)成函數(shù)重載,因為作用域的不同。4.static修飾的成員變量同樣屬于類,只在類中聲明,必須在類外定義,所有類對象共享。未定義的靜態(tài)成員變量默認值為0。5.static修飾的靜態(tài)成員變量在被類的實例化對象調(diào)用時不占用類的內(nèi)存空間,相當與在類中定義了一個全局變量,當多個類中都調(diào)用了靜態(tài)成員變量時,相當于對靜態(tài)成員變量的地址進行操作,一個類對象修改了其的值,其他所有類對象中的靜態(tài)成員變量都相應(yīng)改變。6.靜態(tài)成員變量相對于全局變量,更體現(xiàn)了類的封裝性。
面試題2:在c和c++中const關(guān)鍵字的用法
在c中:
1.const修飾的全局變量地址在堆區(qū)的只讀段,不能修改變量的值,但需要定義時初始化。2.const修飾的局部變量值不能改變,地址在棧區(qū)。3.const修飾的指針時:當const在*左邊時值不能改變,地址能改變。當const在*的右邊是地址不能改變,值能改變。當const在*的兩側(cè)是地址和值都不能改變。
在c++中:
1.修飾的成員函數(shù)是常成員函數(shù),不能修改數(shù)據(jù)成員。2.修飾的對象是常對象,所有數(shù)據(jù)成員都不能被改變,成對象只能調(diào)用常成員函數(shù)。非常對象可以調(diào)用常成員函數(shù)和非常成員函數(shù),優(yōu)先非常成員函數(shù)。常成員函數(shù)和非常成員函數(shù)構(gòu)成函數(shù)重載,因為this指針類型不同。3.const修飾的變量可以用mutable關(guān)鍵字取消常屬性,讓其可以改變。
面試題3:Qt中基于TCP通信中的服務(wù)器和客戶端的操作
服務(wù)器:
1.創(chuàng)建一個QTCPServer的類對象,作為一個服務(wù)器。
2.對該對象調(diào)用listen函數(shù)設(shè)置監(jiān)聽狀態(tài),可以監(jiān)聽指定ip地址,也可以監(jiān)聽所有主機地址,端口號可以指定也可以自動生成。
3.當有客戶端發(fā)來連接請求時,服務(wù)器就會發(fā)射一個newConnect信號,我們可以將該信號連接到自定義槽函數(shù)進行操作邏輯操作。
4.在槽函數(shù)總可以調(diào)用nextPendingConnection函數(shù)來獲取最新連接的客戶端套接字的地址,將該套接字存到客戶端容器中。
5.此時客戶端與服務(wù)器已經(jīng)建立連接請求,如果有客戶端向服務(wù)器發(fā)來數(shù)據(jù),客戶端就會發(fā)射一個readyRead信號。
6.服務(wù)器可以用read,readLine,readALL函數(shù)來完成數(shù)據(jù)的讀取。
7.向套接字中寫數(shù)據(jù),可以使用write函數(shù)完成。
8.用close函數(shù)關(guān)閉服務(wù)器.
客戶端:
1.實例化一個QTCPSocket的類對象。
2.調(diào)用該對象的成員函數(shù)connectToHost連接到服務(wù)器,連接服務(wù)器時需要給定服務(wù)器的ip地址和端口號
3.如果連接服務(wù)器成功,那么該客戶端就會自動發(fā)射一個connected的信號,我們可以將該信號連接到對應(yīng)的槽函數(shù)中盡顯邏輯操作
4.如果服務(wù)器有數(shù)據(jù)向客戶端發(fā)來,那么客戶端就會自動發(fā)射一個readyRead信號,我們可以在該信號對應(yīng)的槽函數(shù)中處理數(shù)據(jù)。
5.可以使用read,readLine,readAll讀取客戶端套接字中的數(shù)據(jù)
6.可以使用write向服務(wù)器中發(fā)送數(shù)據(jù)
7.使用成員函數(shù)disConnectFromHost斷開與服務(wù)器的連接
8.如果斷開成功,套接字就會發(fā)射一個disconnected的信號
?