1. 程式人生 > >C++類成員訪問權限

C++類成員訪問權限

微軟 names 訪問權限 pac ace protected oid 成員訪問 soft

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;
}

C++類成員訪問權限