欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++編程中私有和保護(hù)以及公有的類成員訪問控制

 更新時間:2016年01月21日 16:07:53   投稿:goldensun  
這篇文章主要介紹了C++編程中私有和保護(hù)以及公有的類成員訪問控制,即private和protected以及public關(guān)鍵字的相關(guān)作用和用法,需要的朋友可以參考下

private
語法

private:
  [member-list]
private base-class

備注
當(dāng)位于類成員列表之前時,private 關(guān)鍵字指定這些成員僅可從成員函數(shù)和該類的友元中進(jìn)行訪問。這適用于聲明到下一個訪問指示符或類的末尾的所有成員。
當(dāng)位于基類的名稱之前時,private 關(guān)鍵字指定基類的公共成員和受保護(hù)成員為派生類的私有成員。
類中成員的默認(rèn)訪問是私有的。結(jié)構(gòu)或聯(lián)合中成員的默認(rèn)訪問是公共的。
基類的默認(rèn)訪問對于類是私有的,而對于結(jié)構(gòu)是公共的。 聯(lián)合不能具有基類。
例子

// keyword_private.cpp
class BaseClass {
public:
  // privMem accessible from member function
  int pubFunc() { return privMem; }
private:
  void privMem;
};

class DerivedClass : public BaseClass {
public:
  void usePrivate( int i )
   { privMem = i; }  // C2248: privMem not accessible
             // from derived class
};

class DerivedClass2 : private BaseClass {
public:
  // pubFunc() accessible from derived class
  int usePublic() { return pubFunc(); }
};

int main() {
  BaseClass aBase;
  DerivedClass aDerived;
  DerivedClass2 aDerived2;
  aBase.privMem = 1;   // C2248: privMem not accessible
  aDerived.privMem = 1; // C2248: privMem not accessible
             //  in derived class
  aDerived2.pubFunc();  // C2247: pubFunc() is private in
             //  derived class
}


protected
語法

protected:
  [member-list]
protected base-class

備注
protected 關(guān)鍵字指定對 member-list 中的成員直到下一個訪問說明符(public 或 private)或類定義的末尾的訪問。只能通過以下項使用聲明為 protected 的類成員:
最初聲明這些成員的類的成員函數(shù)。
最初聲明這些成員的類的友元。
使用公共或受保護(hù)訪問(派生自最初聲明這些成員的類)派生的類。
也對受保護(hù)成員具有專用訪問權(quán)限的以私有方式派生的直接類。
當(dāng)以基類的名稱開頭時,protected 關(guān)鍵字指定基類的公共成員和保護(hù)成員是其派生類的保護(hù)成員。
保護(hù)成員不像 private 成員那樣專用,private 成員僅對從中聲明它們的類的成員可訪問,但保護(hù)成員也不像 public 成員那樣公開,public 成員在任何函數(shù)中均可訪問。
也聲明為 static 的保護(hù)成員對派生類的任何友元或成員函數(shù)均可訪問。也聲明為 static 的保護(hù)成員對派生類中的友元或成員函數(shù)可訪問,但只能通過指向派生類的指針、對派生類的引用或派生類的對象。
例子

// keyword_protected.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class X {
public:
  void setProtMemb( int i ) { m_protMemb = i; }
  void Display() { cout << m_protMemb << endl; }
protected:
  int m_protMemb;
  void Protfunc() { cout << "\nAccess allowed\n"; }
} x;

class Y : public X {
public:
  void useProtfunc() { Protfunc(); }
} y;

int main() {
  // x.m_protMemb;     error, m_protMemb is protected
  x.setProtMemb( 0 );  // OK, uses public access function
  x.Display();
  y.setProtMemb( 5 );  // OK, uses public access function
  y.Display();
  // x.Protfunc();     error, Protfunc() is protected
  y.useProtfunc();   // OK, uses public access function
            // in derived class
}


public
語法

public:
  [member-list]
public base-class

備注
當(dāng)位于類成員列表前面時,public 關(guān)鍵字指定這些成員可從任何函數(shù)訪問。這適用于聲明到下一個訪問指示符或類的末尾的所有成員。
當(dāng)位于基類名稱前面時,public 關(guān)鍵字指定基類的公共和受保護(hù)成員分別是派生類的公共成員和受保護(hù)成員。
類中成員的默認(rèn)訪問是私有的。結(jié)構(gòu)或聯(lián)合中成員的默認(rèn)訪問是公共的。
基類的默認(rèn)訪問對于類是私有的,而對于結(jié)構(gòu)是公共的。 聯(lián)合不能具有基類。
例子

// keyword_public.cpp
class BaseClass {
public:
  int pubFunc() { return 0; }
};

class DerivedClass : public BaseClass {};

int main() {
  BaseClass aBase;
  DerivedClass aDerived;
  aBase.pubFunc();    // pubFunc() is accessible 
             //  from any function
  aDerived.pubFunc();  // pubFunc() is still public in 
             //  derived class
}

相關(guān)文章

  • C++ 數(shù)據(jù)結(jié)構(gòu) 堆排序的實現(xiàn)

    C++ 數(shù)據(jù)結(jié)構(gòu) 堆排序的實現(xiàn)

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu) 堆排序的實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言鏈表實現(xiàn)工資管理系統(tǒng)

    C語言鏈表實現(xiàn)工資管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言鏈表實現(xiàn)工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語言中字符的輸入輸出以及計算字符個數(shù)的方法詳解

    C語言中字符的輸入輸出以及計算字符個數(shù)的方法詳解

    這篇文章主要介紹了C語言中字符的輸入輸出以及計算字符個數(shù)的方法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • C++實現(xiàn)簡易的通訊錄管理系統(tǒng)

    C++實現(xiàn)簡易的通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡易的通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言 詳細(xì)解析時間復(fù)雜度與空間復(fù)雜度

    C語言 詳細(xì)解析時間復(fù)雜度與空間復(fù)雜度

    算法復(fù)雜度分為時間復(fù)雜度和空間復(fù)雜度。其作用: 時間復(fù)雜度是度量算法執(zhí)行的時間長短;而空間復(fù)雜度是度量算法所需存儲空間的大小
    2022-04-04
  • C語言超詳細(xì)講解宏與指針的使用

    C語言超詳細(xì)講解宏與指針的使用

    宏定義是用宏名來表示一個字符串,在宏展開時又以該字符串取代宏名,這只是一種簡單的替換。要想突破C語言的學(xué)習(xí),對指針的掌握是非常重要的,本文將具體針對宏與指針的基礎(chǔ)做詳盡的介紹
    2022-06-06
  • 基于Matlab實現(xiàn)繪制3D足球的示例代碼

    基于Matlab實現(xiàn)繪制3D足球的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Matlab實現(xiàn)繪制3D足球,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-11-11
  • C++基于easyx實現(xiàn)迷宮游戲

    C++基于easyx實現(xiàn)迷宮游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于easyx實現(xiàn)迷宮游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • STL中的string你了解嗎

    STL中的string你了解嗎

    這篇文章主要為大家詳細(xì)介紹了STL中的string,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言double和float 實例分析

    C語言double和float 實例分析

    本文主要介紹了C語言中的浮點數(shù)(float,double),并通過實例代碼進(jìn)行分析比較,希望能幫助學(xué)習(xí)相關(guān)知識的同學(xué)
    2016-07-07

最新評論