程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> protect,public,private 的區別

protect,public,private 的區別

編輯:C++入門知識

簡單介紹一下  protect,public,private 的區別,更詳細的隨後不上。 歡迎糾錯~


 
以C++為例:
 
public:  數據成員和函數成員可在成員函數,友元,繼承類中直接使用。亦可以作為接口,供類的用戶使用(即 A a,
a.change())。
 
private:  數據成員和函數成員,只能在  類成員和友元 中訪問。不能被繼承類訪問(無論何種繼承),雖然作為繼承
類的私有成員,但 在 使用過程中,是通過調用基類的構造函數 完成參數的傳遞的。繼承類不能訪問基類的私有成員。
 
protect:  在基類中用法同private,基類對象不能訪問。在派生類中,用法同基類的public, 其成員可被其繼承類對象訪問使用。
 
[cpp]
class Base 
{     
private: 
    int age; 
protect: 
    int num; 

class Devi : public Base 


Base b;  Devi d; 
b.num=3;   //error  
d.num = 3; //ok 

class Base
{   
private:
    int age;
protect:
    int num;
}
class Devi : public Base
{
}
Base b;  Devi d;
b.num=3;   //error
d.num = 3; //ok

繼承類的用戶 在使用從基類繼承的成員時,不僅取決於基類在定義時的訪問標號(私有,公有等),還取決
於自身對基類的繼承方式。同時,繼承類 只能讓訪問權限越小。
 
同時,注意區分類的接口繼承與實現繼承的區別。
接口繼承,即類的用戶可以直接通過“.”或“->”對函數成員進行調用。
實現繼承,即在類的成員函數定義過程中,對數據成員訪問權限的繼承。
 
注意區分 類成員與類用戶的區別。
類成員包括 數據成員和函數成員,講的是類的實現。
類用戶指 類的對象,講的是對接口的使用。 通過,對象通過 ".",指向對象的指針通過“->”。
 [cpp]


public: 
   A(string& Name = "lihao",int Age = 21) 
   {} 
   virtual void print()const; 
private : 
   string name; 
   int age; 

 
void A::print()const 

   cout<<name<<endl 
    <<age<<endl; 

 
Class B:public A 

public: 
    B(string& Name,int Age,int Grade):A(Name,Age),grade(Grade) 
    {} 
private: 
    int grade; 

 
void B::print()const 

     A::print(); 
     cout<<grade<<endl; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved