C++通過 public、protected、private 三個關鍵字來控制成員變量和成員函數的訪問權限,它們分別表示公有的、受保護的、私有的,被稱為成員訪問限定符。所謂訪問權限,就是你能不能使用該類中的成員。
Java、C# 程序員注意,C++ 中的 public、private、protected 只能修飾類的成員,不能修飾類,C++中的類沒有共有私有之分。
在類的內部(定義類的代碼內部),無論成員被聲明為 public、protected 還是 private,都是可以互相訪問的,沒有訪問權限的限制。
在類的外部(定義類的代碼之外),只能通過對象訪問成員,並且通過對象只能訪問 public 屬性的成員,不能訪問 private、protected 屬性的成員。
下面通過一個 Student 類來演示成員的訪問權限:
#include <iostream> using namespace std; //類的聲明 class Student{ private: //私有的 char *m_name; int m_age; float m_score; public: //共有的 void setname(char *name); void setage(int age); void setscore(float score); void show(); }; //成員函數的定義 void Student::setname(char *name){ m_name = name; } void Student::setage(int age){ m_age = age; } void Student::setscore(float score){ m_score = score; } void Student::show(){ cout<<m_name<<"的年齡是"<<m_age<<",成績是"<<m_score<<endl; } int main(){ //在棧上創建對象 Student stu; stu.setname("小明"); stu.setage(15); stu.setscore(92.5f); stu.show(); //在堆上創建對象 Student *pstu = new Student; pstu -> setname("李華"); pstu -> setage(16); pstu -> setscore(96); pstu -> show(); return 0; }