public,private,protected

2024-06-02 22:32
文章标签 public private protected

本文主要是介绍public,private,protected,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自 http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html


#include<iostream>using namespace std;//////////////////////////////////////////////////////////////////////////class A       //父类{private:int privatedateA;protected:int protecteddateA;public:int publicdateA;};//////////////////////////////////////////////////////////////////////////class B :public A      //基类A的派生类B(共有继承){public:void funct(){int b;b=privatedateA;   //error:基类中私有成员在派生类中是不可见的b=protecteddateA; //ok:基类的保护成员在派生类中为保护成员b=publicdateA;    //ok:基类的公共成员在派生类中为公共成员}};//////////////////////////////////////////////////////////////////////////class C :private A  //基类A的派生类C(私有继承){public:void funct(){int c;c=privatedateA;    //error:基类中私有成员在派生类中是不可见的c=protecteddateA;  //ok:基类的保护成员在派生类中为私有成员c=publicdateA;     //ok:基类的公共成员在派生类中为私有成员}};//////////////////////////////////////////////////////////////////////////class D :protected A   //基类A的派生类D(保护继承){public:void funct(){int d;d=privatedateA;   //error:基类中私有成员在派生类中是不可见的d=protecteddateA; //ok:基类的保护成员在派生类中为保护成员d=publicdateA;    //ok:基类的公共成员在派生类中为保护成员}};//////////////////////////////////////////////////////////////////////////int main(){int a; B objB;a=objB.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见a=objB.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见a=objB.publicdateA;    //ok:基类的公共成员在派生类中为公共成员,对对象可见C objC;a=objC.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见a=objC.protecteddateA; //error:基类的保护成员在派生类中为私有成员,对对象不可见a=objC.publicdateA;    //error:基类的公共成员在派生类中为私有成员,对对象不可见D objD;a=objD.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见a=objD.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见a=objD.publicdateA;    //error:基类的公共成员在派生类中为保护成员,对对象不可见return 0;}

这篇关于public,private,protected的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025274

相关文章

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

c++ public、protected 、 private访问修饰符详解

在 C++ 中,访问修饰符用于控制类的成员(数据成员和成员函数)的访问权限。主要的访问修饰符有三个:public、protected 和 private。每种修饰符的访问规则如下: 1. public 定义:public 修饰符表示该成员对所有代码都是可见的,任何对象都可以访问和修改。作用:允许类外部的代码访问这些成员。 class Example {public:int publicVa

访问修饰符public、protected、private,基于C++

一、基本概念 公有(public)成员   公有成员在程序中类的外部是可访问的。您可以不使用任何成员函数来设置和获取公有变量的值, 私有(private)成员  私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员。 默认情况下,类的所有成员都是私有的。例如在下面的类中,width 是一个私有成员,这意味着,如果您没有使用任何访问修饰符,类的成

JAVA反射使用父类的非public方法(getMethods()和getDeclaredMethods()区别)

getMethods()和getDeclaredMethods()区别 虽然是老生常谈了,但是还是要先说一下两者的区别。 getMethods():能够获取类的所有public方法,包括自身定义的以及从父类继承的。 getDeclaredMethods():能够获取类本身的所有方法,包括private方法,实现的接口方法,但是不能获取从父类继承的非public方法。 因此getDeclaredM

C++ 在外部访问对象的protected成员的方法

起因 起因在于,今天在写UE4插件时,有一个对象的protected成员我想要访问。这个类没有提供接口来访问那个成员,并且这个类是定义在引擎代码中的而我不想“污染”引擎代码。 不过,我想到这么做或许可以在不改变原有类的定义下访问其中的protected成员: 定义一个原有类的子类,在其中定义可以访问protected成员的接口。想要访问对象的成员时,将原有类类型的指针转变为子类类型的指针,然

National Contest for Private Universities (NCPU), 2019 E. Generalized Pascal's Triangle

编辑代码 2000ms 262144K Generalized Pascal's Triangle Pascal's triangle is a triangular array in which each number can be calculated by the sum of the two numbers directly above that number as shown i

【vs C++】error LNK2019: 无法解析的外部符号 public: void __thiscall

1 很多编译器显示错误,并不是本行,而是上一行的错误(看出错前后几行一般能找到问题) 2 一般报一堆错误,找第一个错误改了再编 Log 出现这个错误,应该首先查看“#include”语句是否包含,或者是否包含正确。符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重

Java中访问权限修饰符protected, default

作用域   当前类    同package   子孙类 其他package  public √   √  √ √  protected √ √ √ ×  default √ √ × ×  private √ × × ×  默认访问权限(成员变量前面不加public protected 和 private) 重点看protected和default两种权限的区别:对于protected成员

为啥一个java文件只能有一个public类

以后,如果有人问你为什么一个java文件只能有一个public类呢? 答:很简单啊,因为public类的名字要和java文件名相同,文件名只有一个,当然只能有一个public类! 问:good!那为神马文件名必须要和public类名字相同呢?不知道了吧? 答:这个问题是这样的,因为jvm虚拟机为了提高查找类的速度,使用import语句导入的时候,只会导入对应空间的文件名所对应的cla

linux 下转化 ppk 文件 为openssh 文件(private,public)

1. 首先安装: puttygen  ubuntu : apt install putty-tools   2. ppk 文件转化 openssh key     private key :  puttygen /path/to/puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa    public key:  puttyge