C++ protected許可權成員以及類和結構體區別
我們已經知道在C++類中預設的訪問許可權是private,在C++結構體中預設的訪問許可權是public
其實在C++中類和結構體沒有嚴格的界限,區別如上。
那麼這裡說明一下protected許可權。
這個protected訪問許可權只是說明外部呼叫函式不能直接呼叫類成員,但是繼承類確能夠直接訪問。
我們知道基類的private成員繼承類不能直接呼叫,必須透過public方法進行呼叫,
這裡又多了一項可以繼承類可以透過protected方法進行呼叫
如下
class normalu
{
private:
string name;
unsigned int id;
char* password;
public:
unsigned int pri;
normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
{
password = new char[strlen(upass)+1];
strcpy(password,upass);
}
normalu(const normalu& innor);
virtual ~normalu();
void show()
{
cout<<"name:"<<name<<endl;
cout<<"id:"<<id<<endl;
}
virtual void checkpri(void)
{
if(pri>5)
{
cout<<"User Is Normal User!\n";
show();
exit(0);
}
else
{
cout<<"User Is Not Normal User!\n";
show();
cout<<"User Is Only register user!\n";
}
}
};
我們可以修改一下
class normalu
{
private:
string name;
unsigned int id;
char* password;
protected: //將pri和show()函式作為保護許可權成員保證外部不能呼叫更加合適
unsigned int pri;
void show()
{
cout<<"name:"<<name<<endl;
cout<<"id:"<<id<<endl;
}
public:
normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
{
password = new char[strlen(upass)+1];
strcpy(password,upass);
}
normalu(const normalu& innor);
virtual ~normalu();
virtual void checkpri(void)
{
if(pri>5)
{
cout<<"User Is Normal User!\n";
show();
exit(0);
}
else
{
cout<<"User Is Not Normal User!\n";
show();
cout<<"User Is Only register user!\n";
}
}
};
將pri和show()函式作為保護許可權成員保證外部不能呼叫更加合適。
在沒有其他什麼需要說明的了
其實在C++中類和結構體沒有嚴格的界限,區別如上。
那麼這裡說明一下protected許可權。
這個protected訪問許可權只是說明外部呼叫函式不能直接呼叫類成員,但是繼承類確能夠直接訪問。
我們知道基類的private成員繼承類不能直接呼叫,必須透過public方法進行呼叫,
這裡又多了一項可以繼承類可以透過protected方法進行呼叫
如下
class normalu
{
private:
string name;
unsigned int id;
char* password;
public:
unsigned int pri;
normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
{
password = new char[strlen(upass)+1];
strcpy(password,upass);
}
normalu(const normalu& innor);
virtual ~normalu();
void show()
{
cout<<"name:"<<name<<endl;
cout<<"id:"<<id<<endl;
}
virtual void checkpri(void)
{
if(pri>5)
{
cout<<"User Is Normal User!\n";
show();
exit(0);
}
else
{
cout<<"User Is Not Normal User!\n";
show();
cout<<"User Is Only register user!\n";
}
}
};
我們可以修改一下
class normalu
{
private:
string name;
unsigned int id;
char* password;
protected: //將pri和show()函式作為保護許可權成員保證外部不能呼叫更加合適
unsigned int pri;
void show()
{
cout<<"name:"<<name<<endl;
cout<<"id:"<<id<<endl;
}
public:
normalu(string username,unsigned int uid,unsigned int upri,const char* upass):name(username),id(uid),pri(upri)
{
password = new char[strlen(upass)+1];
strcpy(password,upass);
}
normalu(const normalu& innor);
virtual ~normalu();
virtual void checkpri(void)
{
if(pri>5)
{
cout<<"User Is Normal User!\n";
show();
exit(0);
}
else
{
cout<<"User Is Not Normal User!\n";
show();
cout<<"User Is Only register user!\n";
}
}
};
將pri和show()函式作為保護許可權成員保證外部不能呼叫更加合適。
在沒有其他什麼需要說明的了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2123285/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++派生類物件訪問基類的protected成員C++物件
- public, private, protected 訪問許可權訪問許可權
- Java中類的成員方法和變數的訪問許可權Java變數訪問許可權
- C++中結構體與類的區別C++結構體
- C++中類繼承public,protected和private關鍵字作用詳解及派生類的訪問許可權C++繼承訪問許可權
- Java:談談protected訪問許可權薦Java訪問許可權
- C++ 結構體struct和共同體union的區別C++結構體Struct
- jenkins原理篇——成員許可權管理Jenkins
- C++類中的常成員和靜態成員C++
- 總結sysdba和sysoper許可權
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- .NET 程式許可權控制、獲得管理員許可權程式碼
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- C# 結構體與類的區別C#結構體
- Guest許可權突破——許可權提升方法總結(轉)
- 程式請求管理員許可權
- windows7管理員許可權Windows
- WindowsNT和Linux的檔案許可權一個區別(轉)WindowsLinux
- Android系統許可權和root許可權Android
- DRF內建許可權元件之自定義許可權管理類元件
- 小知識:軟體開發的許可權控制和許可權驗證
- 許可權概念、許可權提升概念以及許可權提升的分類和目的 Windows 提權的基礎原理是瞭解作業系統的安全機制和許可權管理 Windows提權攻擊的進一步知識概念Windows作業系統
- C++ 類成員指標C++指標
- C++類靜態成員C++
- C++ 類成員函式C++函式
- [C++]結構體、共同體和列舉型別C++結構體型別
- 選單許可權和按鈕許可權設定
- 類似許可權這樣系統功能如何和DDD結合使用?
- win10管理員許可權怎麼取消_win10如何關掉管理員許可權Win10
- w10如何獲得管理員許可權_win10怎麼取得管理員許可權Win10
- 如何獲取最高管理員許可權 win10教育版最高管理員許可權Win10
- 【思考】URI和URL的區別?以及URL的結構
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- 已知結構體成員地址獲取結構體首地址結構體
- 【專案實踐】一文帶你搞定頁面許可權、按鈕許可權以及資料許可權
- CDB和PDB關於使用者建立和使用者許可權區別
- java中public,protected,private關鍵字以及預設訪問許可權修飾符的用法細節Java訪問許可權
- 類的許可權與應用