三種訪問許可權
- public:公有屬性 凡是在它下面宣告的變數和函式,都可以在類的內部和外部訪問。
- private: 私有屬性 凡是在它下面宣告的變數和函式,只能在類的內部訪問。可以使用公有成員函式,用於獲取私有變數的值。
- protected: 保護屬性 凡是在它下面宣告的變數和函式,只能在類的內部以及派生類(子類)中訪問。
- 預設規則:類的成員(包括屬性和方法)的訪問許可權是私有(private)。如果你沒有明確指定訪問許可權,那麼類的成員將預設為私有。 如下,沒有規定許可權設定,以下均為私有屬性
// 定義一個動物的類
class Animal
{
void EatFood() {
// 類的成員函式
cout << "我要吃食物" << endl;
}
char *name;
//類的資料成員
int number;
char Test[100];
};
手動新增其訪其訪問屬性
// 定義一個動物的類
class Animal {
public:
//手動設定為公有屬性,即例項化的物件可以直接訪問
void EatFood() {
// 類的成員函式
cout << "我要吃食物" << endl;
}
char *name;
//類的資料成員
private:
int number;
protected:
char Test[100];
};
應用場景
- student.h
#ifndef _STUDENT_H_
#define _STUDENT_H_
#include <iostream>
using namespace std;
class Student {
public:
int GetAge(); //宣告類的成員函式,在函式的其它地方實現
int SetAge(int student_age); // 公有成員函式,用於獲取私有變數的值
private:
int age;
protected:
char Test[100];
};
#endif
- student.cpp
#include "student.h"
int Student::SetAge(int student_age) //我們可以使用公有屬性的函式介面,設定私有屬性的值。
{
age= student_age;
}
int Student::GetAge() //獲取私有屬性的值。
{
return age; //返回私有屬性成員
}
- main.c
#include "student.h"
int main(int argc, char const *argv[])
{
Student qjl;
qjl.SetAge(18);
cout<<qjl.GetAge()<<endl;
/*
私有屬性和保護屬性不可以直接用物件訪問
qjl.age=2;
qjl.Test="hhhh";
*/
return 0;
}