最新国产AV资源网_亚洲熟女AV天堂五月天_中文字幕丶东京热_中文字幕乱码免费高清视频

Hi,您好,歡迎來到西安盛圖軟件科技有限公司!

C++ 訪問修飾符

發(fā)布時間:2023-12-11 13:57:16

C++ 是面向?qū)ο蟮木幊陶Z言,對象就是面向?qū)ο蟪绦蛟O(shè)計的核心。所謂對象就是真實世界中的實體,對象與實體是一一對應(yīng)的,也就是說現(xiàn)實世界中每一個實體都是一個對象,它是一種具體的概念。本文主要介紹C++ 訪問修飾符。

1、常見的訪問修飾符

1)public(共有成員)

修飾成員在任意地方都可以訪問。公有成員在程序中類的外部是可訪問的??梢圆皇褂萌魏纬蓡T函數(shù)來設(shè)置和獲取公有變量的值。

例如,

#include <iostream>
using namespace std;
class Line
{

  public:
     double length;
     void setLength( double len );
     double getLength( void );
};
// 成員函數(shù)定義
double Line::getLength(void)
{
   return length ;
}
void Line::setLength( double len )
{
   length = len;
}
// 程序的主函數(shù)
int main( )
{
  Line line;
  // 設(shè)置長度
  line.setLength(6.0);
  cout << "Length of line : " << line.getLength() <<endl;
  // 不使用成員函數(shù)設(shè)置長度
  line.length = 10.0; // OK: 因為 length 是公有的
  cout << "Length of line : " << line.length <<endl;
  return 0;
}

2)private(私有成員)

修飾的成員只能夠在類中或者友元函數(shù)中可以訪問。私有成員變量或函數(shù)在類的外部是不可訪問的,甚至是不可查看的。只有類和友元函數(shù)可以訪問私有成員。默認(rèn)情況下,類的所有成員都是私有的。 width 是一個私有成員。

例如,

#include <iostream>
using namespace std;
class Box
{

  public:
     double length;
     void setWidth( double wid );
     double getWidth( void );
  private:
     double width;
};
// 成員函數(shù)定義
double Box::getWidth(void)
{
   return width ;
}
void Box::setWidth( double wid )
{
   width = wid;
}
// 程序的主函數(shù)
int main( )
{
  Box box;
  // 不使用成員函數(shù)設(shè)置長度
  box.length = 10.0; // OK: 因為 length 是公有的
  cout << "Length of box : " << box.length <<endl;
  // 不使用成員函數(shù)設(shè)置寬度
  // box.width = 10.0; // Error: 因為 width 是私有的
  box.setWidth(10.0);  // 使用成員函數(shù)設(shè)置寬度
  cout << "Width of box : " << box.getWidth() <<endl;
  return 0;
}

2)protected(保護成員)

修飾的成員可以在類中的函數(shù)、子類函數(shù)及友元函數(shù)中訪問。

保護成員變量或函數(shù)與私有成員類似,但有一點不同,保護成員在派生類(即子類)中是可訪問的。

例如,

#include <iostream>
using namespace std;
class Box
{

  protected:
     double width;
};
class SmallBox:Box // SmallBox 是派生類
{
  public:
     void setSmallWidth( double wid );
     double getSmallWidth( void );
};
// 子類的成員函數(shù)
double SmallBox::getSmallWidth(void)
{
   return width ;
}
void SmallBox::setSmallWidth( double wid )
{
   width = wid;
}
// 程序的主函數(shù)
int main( )
{
  SmallBox box;
  // 使用成員函數(shù)設(shè)置寬度
  box.setSmallWidth(5.0);
  cout << "Width of box : "<< box.getSmallWidth() << endl;
  return 0;
}


2、訪問修飾符繼承

publicprotectedprivate三種繼承方式,它們相應(yīng)地改變了基類成員的訪問屬性。


1)public 繼承

基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:publicprotectedprivate


2)protected 繼承

基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:protectedprotectedprivate


3)private 繼承

基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:privateprivate

上一篇:C++ File文件處理 刪除文件和文件夾目錄
下一篇:C++基礎(chǔ)|C++ 構(gòu)造函數(shù)

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄