請說出static和const關鍵字盡可能多的作用

2021-07-09 10:07:11 字數 913 閱讀 4793



【解答】

static關鍵字至少有下列n個作用:

(1)函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值;

(2)在模組內的static全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問;

(3)在模組內的static函式只可被這一模組內的其它函式呼叫,這個函式的使用範圍被限制在宣告它的模組內;

(4)在類中的static成員變數屬於整個類所擁有,對類的所有物件只有乙份拷貝;

(5)在類中的static成員函式屬於整個類所擁有,這個函式不接收this指標,因而只能訪問類的static成員變數。 

const關鍵字至少有下列n個作用:

(1)欲阻止乙個變數被改變,可以使用const關鍵字。在定義該const變數時,通常需要對它進行初始化,因為以後就沒有機會再去改變它了;

(2)對指標來說,可以指定指標本身為const,也可以指定指標所指的資料為const,或二者同時指定為const;

(3)在乙個函式宣告中,const可以修飾形參,表明它是乙個輸入引數,在函式內部不能改變其值;

(4)對於類的成員函式,若指定其為const型別,則表明其是乙個常函式,不能修改類的

成員變數;

(5)對於類的成員函式,有時候必須指定其返回值為const型別,以使得其返回值不為「左值」。例如:

const classa operator*(const classa& a1,const classa& a2);

operator*的返回結果必須是乙個const物件。如果不是,這樣的****也不會編譯出錯:

classa a, b, c;

(a * b) = c; // 對a*b的結果賦值

操作(a * b) = c顯然不符合程式設計者的初衷,也沒有任何意義。

請說出static和const關鍵字盡可能多的作用

static關鍵字至少有下列n個作用 1 函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值 2 在模組內的static全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問 3 在模組內的static函式只可被這...

請說出你所知道的執行緒同步方法

同步方法 同步 塊 使用特殊域變數 volatile 實現執行緒同步 不走快取,可見性。該修飾詞是對域變數的訪問提供了以這種防鎖機制,相當於告訴虛擬機器,該域的變數可能被更改。因此每次使用該域都要重新計算,而不是從暫存器中取出資料。從而實現執行緒的同步。該修飾詞不能修改final型別變數 使用重入鎖...

請說出與執行緒同步以及執行緒排程相關的方法

wait 使乙個執行緒處於等待 阻塞 狀態,並且釋放所持有的物件的鎖 sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要處理interruptedexception異常 notify 喚醒乙個處於等待狀態的執行緒,當然在呼叫此方法的時候,並不能確切的喚醒某乙個等待狀態的執行...