類的許可權與應用

一月一星辰發表於2024-08-28

三種訪問許可權

  1. public:公有屬性 凡是在它下面宣告的變數和函式,都可以在類的內部和外部訪問。
  2. private: 私有屬性 凡是在它下面宣告的變數和函式,只能在類的內部訪問。可以使用公有成員函式,用於獲取私有變數的值。
  3. protected: 保護屬性 凡是在它下面宣告的變數和函式,只能在類的內部以及派生類(子類)中訪問。
  4. 預設規則:類的成員(包括屬性和方法)的訪問許可權是私有(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; 
} 

相關文章