源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++派生访问说明符小记(推荐)

  • 时间:2021-02-22 15:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++派生访问说明符小记(推荐)
[b]如下所示:[/b]
#include <iostream> 

using namespace std; 

class a{
protected:
 int i;
private:
 int j;
public:
 int k;
};



class b:public a{//派生访问说明符对派生类内对其直接基类的访问没有影响,主要是用于控制派生类用户(包括派生类的派生类)对基类成员的访问权限
 friend void f1(a a1){
  cout<<a1.i;//错误,派生类的成员或友元不能访问基类对象protected成员(protected特性)
  cout<<a1.j;//错误,派生类不能访问基类private成员
  cout<<a1.k;//正确
 }
 friend void f1(b b1){
  cout<<b1.i;//正确,派生类可以通过派生类对象访问基类protected成员
  cout<<b1.j;//错误,派生类不能访问基类private成员
  cout<<b1.k;//正确
 }
 void f2(a a1){
  cout<<a1.i;//错误,派生类的成员或友元不能访问基类对象protected成员(protected特性)
  cout<<a1.j;//错误,派生类不能访问基类private成员
  cout<<a1.k;//正确
 }
 void f2(b b1){
  cout<<b1.i;//正确,派生类可以通过派生类对象访问基类protected成员
  cout<<b1.j;//错误,派生类不能访问基类private成员
  cout<<b1.k;//正确
 }
 void f3(){
  cout<<i;//正确,派生类可直接访问基类protected成员
  cout<<j;//错误,派生类不能访问基类private成员
  cout<<k;//正确
 }
};
class c:private a{}
class e:protected a{}

class f:public c{
 void f4(){
  cout<<k;//出错,原因是f的直接基类c由a private派生
 }
}

int main() 
{ 
 f f1;
 b b1;
 cout<<f1.k;//出错,原因是f的直接基类c由a private派生
 system("pause");
 return 0; 
} 
以上这篇C++派生访问说明符小记(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部