const關鍵字表示限定為唯讀
const int *p ; //表示不能通過指標變數
p來改變位址上的值
我們需要寫一函式僅僅是接收引數的位址,而不會改變它的值時,就可以使用
const.
如乙個函式
:void func(conststudent * p); 這樣反映出我們需傳遞
student變數的位址,函式裡面不改變它的值,而且我們在傳遞前,必須初始化變數的值
.char *strcpy(char*dest, const char *src); 可看出
src僅僅是取值,不會改變的。而
dest沒有
const的修飾,則會改變它指向空間上的內容
.int *const p;//表示不能改變指標變數指向的位址.在
c++裡的函式成員也可以加上
const修飾符,可以限定此函式體內不能改變類物件的所有屬性成員.如
:12 #include
34 using namespacestd;
56 class mycls
1617 stringget_name() const
18 22 };
2324 int main(void)
25 {
2627 return 0;
編譯時發生的錯誤
:[root@localhost08const]# g++ test.cpp
test.cpp: in memberfunction 『std::string mycls::get_name() const』:
test.cpp:19:6:error: assignment of member 『mycls::id』 in read-only object
id = 88;
^c++的函式成員帶
const修飾符,除了限定函式體內不能改變屬性成員的值
(區域性變數這些還是可以改的
)外, 還反饋出此函式僅僅是用於獲取屬性成員的值
.
C 基礎知識
抽象類 abstract class 一種不可以被例項化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被例項化。介面 inte ce 只含有共有抽象方法 public abstract method 的類。這些方法必須在子類中被實現。反射 程式集包含模...
c 基礎知識
或運算的意義是什麼 0 0 0 0 1 1 1 0 1 1 1 1 無進製與運算的意義是什麼 在vc中,視窗的每個屬性對應乙個只有一位為1的16位的二進位制數,當增加某屬性做或運算 即可,取消某個屬性只需與 上這個屬性的取反。cs.style ws maximizebox 和cs.style cs....
C 基礎知識
1 malloc和new區別與聯絡 a malloc malloc為函式,需要標頭檔案,申請的無型別,需要強制轉換 free釋放。示例 char p char malloc 10 sizeof char free p b new new是運算子,不需要標頭檔案,申請的是有型別的,自動呼叫建構函式 d...