如何在C語言中實(shí)現(xiàn)訪問控制
訪問控制是面向?qū)ο缶幊痰闹匾拍?,它允許我們限制某些類、變量、常數(shù)或函數(shù)的訪問范圍。在C語言中,我們可以通過使用public、private和protected三個(gè)權(quán)限控制符來實(shí)現(xiàn)訪問控制。 (一)
訪問控制是面向?qū)ο缶幊痰闹匾拍?,它允許我們限制某些類、變量、常數(shù)或函數(shù)的訪問范圍。在C語言中,我們可以通過使用public、private和protected三個(gè)權(quán)限控制符來實(shí)現(xiàn)訪問控制。
(一) public權(quán)限控制符
public權(quán)限控制符指定一個(gè)類、變量、常數(shù)或函數(shù)在任何地方都可以調(diào)用。例如,在定義一個(gè)類Test時(shí),我們可以在類中使用public關(guān)鍵字來修飾一個(gè)整型變量m,以及定義一個(gè)公有函數(shù)來實(shí)現(xiàn)整數(shù)的累加。
class Test {
public:
int m;
void add(int n) {
m n;
}
};
int main() {
int n;
Test f;
(10);
cout << "Sum: " << f.m << endl;
return 0;
}
運(yùn)行上述程序,我們可以看到正確輸出了累加的值,說明用public權(quán)限控制符修飾的函數(shù)和變量可以在任何地方調(diào)用。
(二) private權(quán)限控制符
private權(quán)限控制符指定一個(gè)變量、常數(shù)、方法或名稱空間只能在定義的類中可用。接下來,我們將變量m的權(quán)限控制符更改為private,并嘗試編譯程序。
class Test {
private:
int m;
public:
void add(int n) {
m n;
}
};
int main() {
int n;
Test f;
(10);
cout << "Sum: " << f.m << endl; // 錯(cuò)誤!無法訪問私有變量
return 0;
}
編譯程序后,我們會收到一個(gè)錯(cuò)誤提示,因?yàn)樽兞縨已經(jīng)變?yōu)樗接校荒茉诙x的類中使用,其他地方無法調(diào)用。
(三) protected權(quán)限控制符
protected權(quán)限控制符指定一個(gè)變量、常數(shù)、方法或名稱空間在類和子類中可用。如果我們將類中的權(quán)限控制符修改為protected,則表示修飾的變量m和函數(shù)fun可以在類及其所有子類中被調(diào)用。
class Test {
protected:
int m;
public:
void add(int n) {
m n;
}
};
class SubTest : public Test {
public:
void subtract(int n) {
m - n;
}
};
int main() {
int n;
SubTest f;
(10);
(5);
cout << "Result: " << f.m << endl;
return 0;
}
在上述代碼中,我們創(chuàng)建了一個(gè)子類SubTest并繼承自父類Test。我們可以看到在子類中使用了父類中被protected權(quán)限控制的變量m,并成功進(jìn)行了計(jì)算。
通過使用public、private和protected權(quán)限控制符,我們可以在C語言中實(shí)現(xiàn)對類、變量、常數(shù)和函數(shù)的訪問控制,從而提高代碼的安全性和可維護(hù)性。
(以上文章為seo文章編輯結(jié)合原文內(nèi)容獨(dú)立創(chuàng)作而成)