日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

public private protected

發(fā)布時(shí)間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 public private protected 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、先說類成員變量及成員函數(shù)的的屬性。


1.public 與 private 的區(qū)別

這兩個(gè)的區(qū)別學(xué)過C++的都比較清楚,public的變量和函數(shù)在類的內(nèi)部外部都可以訪問,而private只有在類的

內(nèi)部可以訪問

1. protected 與 private

如果一個(gè)類沒有派生出其他類,那么protected和private是完全相同的,也就是說protected和private一樣只

能在類的內(nèi)部訪問,不能在類的外部訪問。

但是在派生其他類的情況下,protected和private的區(qū)別就體現(xiàn)出來了。private型變量只能在類本身中訪問,

在其派生類中也不能訪問;而protected型的變量可以在派生類中訪問

/*
* =====================================================================================
*
* Filename: main.cc
*
* Description:
*
* Version: 1.0
* Created: 07/22/2011 09:41:51 PM
* Revision: none
* Compiler: gcc
*
* Author: kangle.wang (mn), wangkangluo1@gmail.com
* Company: APE-TECH
*
* =====================================================================================
*/


#include
<cstdlib>
#include
<fstream>
#include
<iomanip>
#include
<iostream>

using namespace std;

class Base
{
public:
Base(
int a, int b = 0);
protected:
int m_b;
private:
int m_a;
};

class Derive : public Base
{
public:
Derive(
int a, int b = 0) : Base(a, b) {}
int GetA();
int GetB();
};

Base::Base(
int a, int b)
{
m_a
= a;
m_b
= b;
}
int Derive::GetA()
{
return 1;
//return m_a;//派生類不能訪問基類的私有變量, 錯(cuò)誤
}
int Derive::GetB()
{
return m_b;//派生類可以訪問基類的保護(hù)變量, 正確
}

// === FUNCTION ======================================================================
// Name: main
// Description: main function
// =====================================================================================
int
main (
int argc, char *argv[] )
{
int num = 0;
Base b(
10, 20);

//num = b.m_a; //類的外部不能訪問私有變量, 錯(cuò)誤
//num = b.m_b; //類的外部不能訪問保護(hù)變量, 錯(cuò)誤
cout << "\nProgram " << argv[0] << endl << endl;

return EXIT_SUCCESS;
}
// ---------- end of function main ----------

  

編譯:Makefile

all:main
main:main.cc
g
++ -g -Wall -O0 main.cc -o main

 

2.public 與 private 的區(qū)別

這兩個(gè)的區(qū)別學(xué)過C++的都比較清楚,public的變量和函數(shù)在類的內(nèi)部外部都可以訪問,而private只有在類的

內(nèi)部可以訪問

 

#include <cstdlib>
#include
<fstream>
#include
<iomanip>
#include
<iostream>

using namespace std;

class Base
{
public:
Base(
int a, int b = 0);
int GetA();
int m_b;
private:
int GetB();
int m_a;
};

Base::Base(
int a, int b)
{
m_a
= a;
m_b
= b;
}
int Base::GetA()
{
return m_a;//類的內(nèi)部可以訪問私有變量, 正確
}
int Base::GetB()
{
return m_b;//類的內(nèi)部可以訪問公有變量, 正確
}

// === FUNCTION ======================================================================
// Name: main
// Description: main function
// =====================================================================================
int
main (
int argc, char *argv[] )
{
int num;
Base b(
10);

// num = b.m_a; //類的外部不能訪問私有變量, 錯(cuò)誤
num = b.m_b;//類的外部可以訪問公有變量, 正確

cout
<< "\nProgram " << argv[0] << endl << endl;

return EXIT_SUCCESS;
}
// ---------- end of function main ----------

  編譯:Makefile

all:main
main:main.cc
g
++ -g -Wall -O0 main.cc -o main

  

總結(jié)

以上是生活随笔為你收集整理的public private protected的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。