最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間: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)位于類成員列表之前時(shí),private 關(guān)鍵字指定這些成員僅可從成員函數(shù)和該類的友元中進(jìn)行訪問。這適用于聲明到下一個(gè)訪問指示符或類的末尾的所有成員。
當(dāng)位于基類的名稱之前時(shí),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 中的成員直到下一個(gè)訪問說明符(public 或 private)或類定義的末尾的訪問。只能通過以下項(xiàng)使用聲明為 protected 的類成員:
最初聲明這些成員的類的成員函數(shù)。
最初聲明這些成員的類的友元。
使用公共或受保護(hù)訪問(派生自最初聲明這些成員的類)派生的類。
也對受保護(hù)成員具有專用訪問權(quán)限的以私有方式派生的直接類。
當(dāng)以基類的名稱開頭時(shí),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)位于類成員列表前面時(shí),public 關(guān)鍵字指定這些成員可從任何函數(shù)訪問。這適用于聲明到下一個(gè)訪問指示符或類的末尾的所有成員。
當(dāng)位于基類名稱前面時(shí),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++ class中成員與分配內(nèi)存的問題詳解

    c++ class中成員與分配內(nèi)存的問題詳解

    很多人都知道C++類是由結(jié)構(gòu)體發(fā)展得來的,所以他們的成員變量(C語言的結(jié)構(gòu)體只有成員變量)的內(nèi)存分配機(jī)制是一樣的,下面這篇文章主要給大家介紹了關(guān)于c++ class中成員與分配內(nèi)存問題的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • C語言實(shí)現(xiàn)簡易文本編輯器

    C語言實(shí)現(xiàn)簡易文本編輯器

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡易文本編輯器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C/C++?string.h庫中memcpy()和memmove()的使用

    C/C++?string.h庫中memcpy()和memmove()的使用

    memcpy與memmove的目的都是將N個(gè)字節(jié)的源內(nèi)存地址的內(nèi)容拷貝到目標(biāo)內(nèi)存地址中,本文主要介紹了C/C++?string.h庫中memcpy()和memmove()的使用,感興趣的可以了解一下
    2023-12-12
  • 基于Qt實(shí)現(xiàn)離線瓦片地圖下載器

    基于Qt實(shí)現(xiàn)離線瓦片地圖下載器

    這篇文章主要介紹了如何通過Qt實(shí)現(xiàn)離線瓦片地圖下載器,文中的示例代碼對我們學(xué)習(xí)或工作有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • C++入門基礎(chǔ)之命名空間、輸入輸出和缺省參數(shù)

    C++入門基礎(chǔ)之命名空間、輸入輸出和缺省參數(shù)

    C++入門基礎(chǔ)篇的內(nèi)容為C++的基本特性,只有在掌握C++的基本特性后,是進(jìn)入后面類和對象學(xué)習(xí)的基礎(chǔ),下面這篇文章主要給大家介紹了關(guān)于C++入門基礎(chǔ)之命名空間、輸入輸出和缺省參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • C語言實(shí)現(xiàn)銀行管理系統(tǒng)

    C語言實(shí)現(xiàn)銀行管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • c語言實(shí)現(xiàn)單鏈表算法示例分享

    c語言實(shí)現(xiàn)單鏈表算法示例分享

    這篇文章主要介紹了c語言實(shí)現(xiàn)單鏈表算法示例,需要的朋友可以參考下
    2014-02-02
  • C語言改造通訊錄操作詳解

    C語言改造通訊錄操作詳解

    這篇文章主要介紹了C語言文件操作改造通訊錄方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • 淺析STL中的常用算法

    淺析STL中的常用算法

    以下是對STL中的常用算法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-09-09
  • 一文掌握scanf的用法實(shí)例小結(jié)

    一文掌握scanf的用法實(shí)例小結(jié)

    scanf的基本用法除了常規(guī)的輸入操作外還有一些特殊的用法,使用這些用法可以很方便的在輸入中讀取想要的數(shù)據(jù),這篇文章主要介紹了scanf的用法,需要的朋友可以參考下
    2023-12-12

最新評論

芮城县| 保山市| 宜丰县| 石渠县| 孟村| 平塘县| 济阳县| 勐海县| 云林县| 呼和浩特市| 云和县| 四川省| 青神县| 马山县| 周宁县| 平邑县| 山东| 乌鲁木齐市| 深水埗区| 松溪县| 平昌县| 湾仔区| 双城市| 石阡县| 北安市| 措美县| 长治市| 县级市| 湖州市| 陆川县| 攀枝花市| 林周县| 保定市| 招远市| 长顺县| 甘谷县| 外汇| 德化县| 安化县| 壤塘县| 崇信县|