-
2020-02-15 17:53:17
可访问范围:
public : 内部类、自身、子类、外部
protected:内部类、自身、子类
default:内部类、自身、
private:内部类注:protected外部包不能访问,但是如果子类是在包外可以访问。
更多相关内容 -
Java中的private、protected、public和default的区别(详解)
2020-09-01 06:51:40下面小编就为大家带来一篇Java中的private、protected、public和default的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
C++public、protected和private的区别
2021-06-02 09:36:05C++public继承、protected继承和private继承的区别 学习C++这三个关键字是比较基础且常见的,下面先简单介绍下这三个关键字在类内的作用: public:公有的,说明声明在public后面的成员所有人都是可以使用的。 ...在类中的区别
学习C++这三个关键字是比较基础且常见的,下面先简单介绍下这三个关键字在类内的作用:
- public:公有的,说明声明在public后面的成员所有人都是可以使用的,比如一个公有成员变量可以直接使用该类的对象"."出来这个成员,如果这个成员是protected和private都需要通过public的函数来访问这个成员。
- protected:受保护的,类内和子类可直接访问,也就是说,基类中有protected成员,子类继承于基类,那么也可以访问基类的protected成员,要是基类是private成员,则对于子类也是隐藏的,不可访问。
- private:私有的,只有类内的成员函数才可以访问。
在继承时的区别
在继承时也可以使用这三个限制继承方式下面介绍下这三个关键字在继承时的作用:
1.public:表示公有继承,特点是父类的public、protect成员属性在子类中保持不变但是父类的私有成员无法被子类直接访问。子类成员函数可以直接访问父类的public、protect成员,子类的对象只能访问基类的public成员。
2. protected:表示保护继承,特点是基类的public、protect成员属性在子类中都会成为子类的protected成员。但是父类的私有成员无法被子类直接访问。子类成员函数可以直接访问父类的public、protect成员,子类的对象只能访问基类的public成员。
3. private:私有继承,特点是基类的public、protect成员属性在子类中都会成为子类的private成员。但是父类的私有成员无法被子类直接访问。子类成员函数可以直接访问父类的public、protect成员,子类的对象只能访问基类的public成员。
父类中的private成员从物理结构上来说确实是被子类继承了,但是子类是无法直接访问的,可以通过继承父类中访问父类私有成员的public或protected方法来访问父类的私有成员。以上内容均是作者查阅资料加自己理解,如有疑问,望读者不吝赐教,谢谢!
-
C++ Protected和Private的区别
2020-01-06 11:40:02主要区别在于派生类可以访问基本的Protected成员和方法,而无法访问基本的private成员和方法,其余是一样的。 实例代码 // VBaseTime.cpp : 定义控制台应用程序的入口点。 // STL标准库使用 #include "stdafx.h" #...- 主要区别在于派生类可以访问基本的Protected成员和方法,而无法访问基本的private成员和方法,其余是一样的。
- 实例代码
// VBaseTime.cpp : 定义控制台应用程序的入口点。 // STL标准库使用 #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <Windows.h> using namespace std; class Person{ public: Person(){ cout << "初始化Person" << endl; } ~Person(){ cout << "释放" << endl; } private: void ShowPrivate(){ cout << "展示Private方法" << endl; } protected: void ShowProtected(){ cout << "展示Protect方法" << endl; } }; class Man: public Person { public: Man(){ cout << "初始化Man" << endl; } ~Man(){ cout << "释放Man" << endl; } void testDemo(){ ShowProtected(); } }; void demo() { unique_ptr<Man> mp(new Man()); //Man * mp = new Man(); mp->testDemo(); } int _tmain(int argc, _TCHAR* argv[]) { demo(); system("pause"); return 0; }
简单说明一下,创建了父类
Person
和子类Man
,子类继承了父类的ShowProtected方法,中间也使用智能指针 防止内存泄漏问题
运行结果: -
C++中public,protected,private的区别
2021-11-08 16:00:41在C++中一个类的成员的访问级别可分为public,protected,和private。public的访问级别最低,谁都可以访问。 一个类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问 protected访问级别中等...C++中public,protected,private个人总结为两种概念,一个宗旨。
两种概念:
概念一:静态的
在C++中一个类的成员的访问级别可分为public,protected,和private。public的访问级别最低,谁都可以访问。
一个类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问
protected访问级别中等,一个类的protected成员变量、成员函数,无法通过类的实例变量进行访问。但是可以通过类的友元函数、友元类进行访问。
private访问级别最高, 一个类的private成员变量、成员函数,无法通过类的实例变量进行访问。但是可以通过类的友元函数、友元类进行访问。
到这里我们发现似乎protectd和private没有什么太大的区别,但是主要区别在概念二中。
概念二:动态的
关于动态的,也就是动作的意义。其中包含父子继承的关系。也就是自类是如何继承父类的,是public继承,protected继承,还是private继承。
(1)public继承
派生类通过public继承,基类的各种权限不变 。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,可以访问基类的public成员,但是无法访问protected、private成员,仿佛基类的成员之间加到了派生类一般。
可以将public继承看成派生类将基类的public,protected成员囊括到派生类,但是不包括private成员。
(2)proteced继承
派生类通过protected继承,基类的public成员在派生类中的权限变成了protected 。protected和private不变。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,无法访问基类的任何成员,因为基类的public成员在派生类中变成了protected。
可以将protected继承看成派生类将基类的public,protected成员囊括到派生类,全部作为派生类的protected成员,但是不包括private成员。
private成员是基类内部的隐私,除了友元,所有人员都不得窥探。派生类的友元,都不能访问
(3)private继承
派生类通过private继承,基类的所有成员在派生类中的权限变成了private。
派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。
派生类的实例变量,无法访问基类的任何成员,因为基类的所有成员在派生类中变成了private。
可以将private继承看成派生类将基类的public,protected成员囊括到派生类,全部作为派生类的private成员,但是不包括private成员。
private成员是基类内部的隐私,除了友元,所有人员都不得窥探。派生类的友元,都不能访问具体实例请参考博客protected,public,private区别实例
一个宗旨
一个宗旨,就是,最终我们在解决实际开发问题的时候都要遵照类对象中所有成员的具体访问级别,进行访问,越级访问一定是不可以的。 -
private和protected的区别_学习笔记
2021-01-13 11:31:21在类外如果想使用类中的成员,只能直接使用public类型的,protected和private都是不能访问的,对于类外而言,这两个是完全相同的。 理解: private只有自己可以调用; protected: 有关系的类(派生类)也可以使用; 外包... -
类的protected与private的区别
2019-01-24 17:17:47类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。 一个类可以有多个 public、protected 或 private 标记区域。每... -
C++ private 和 protected类型的区别
2019-04-28 15:47:34用例子说明: class Entity { public: ...private: int X, Y; }; class Player: public Entity { public: Player() { } private: }; int main() { Entity e; std::cin.get(); } 如上,En... -
public/private/protected的具体区别
2022-04-24 09:14:593、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。互为友好关系的类。 扩展资料: 三种类型的继承,父类的成员均被子类... -
private和protected的区别
2018-08-08 13:23:20在类外如果想使用类中的成员,只能直接使用public类型的,proteced和private都是不能访问的,对于类外而言,这两个是完全相同的。 不能把私有数据的地址或引用泄露出去,外部可以改变私有数据的值。 ... -
C++中的三种继承public,protected,private详细解析
2021-01-20 05:45:01三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 ...protected & protected继承 => protected protecte -
深入理解C++中public、protected及private用法
2020-12-25 19:19:04初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有... -
Private和Protected的区别
2019-08-27 13:42:39首先这两个都是访问类中成员权限的限制符。 private是完全私有的,只有自己...在类外如果想使用类中的成员,只能直接使用public类型的,proteced和private都是不能访问的,对于类外而言,这两个是完全相同的。 ... -
public、private、protected的区别
2021-05-10 14:24:03自身类和派生类可以访问相当于自身的private型成员,它同private的区别就是在对待派生类的区别上。 C++中 public,protected, private 访问标号小结 第一:private, public, protected 访问标号的访问范围。 ... -
还在分不清protected和private吗,本文一分钟讲懂ruby中protected和private区别
2020-09-08 11:41:42Ruby 为您提供了三个级别的实例方法保护,分别是 public、private 或 protected。 Public 方法: Public 方法可被任意对象调用。默认情况下,方法都是 public 的,除了 initialize 方法总是 private 的。 Private ... -
java中public/private/protected的具体区别
2021-12-07 09:47:34java中public/private/protected的具体区别 public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以... -
PHP中的private和public还有protected的区别
2021-05-05 09:10:56最近H5项目繁忙,没空写...这就是我对它的一个印象;废话少说,PHP中private和public还有protected的区别:顾名思义,如果你有记得高中英语,那么就很容易理解这三个单词的意思了,①:public 表示全局,类内部外部子类... -
c++ public和protected,private区别
2020-05-16 08:59:32 -
JAVA中public/private/protected的具体区别
2019-08-24 13:51:021、public:public表明该数据成员、成员函数是对所有用户...3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。 三种类型... -
简单谈谈Ruby的private和protected
2020-09-21 18:19:52Ruby类下对访问控制的限制也是用public,protected和private来做的。虽然用的是和C++和Java相同的名字,但是Ruby下的protected和private定义还是有所不同的。 -
Java的外部类为什么不能使用private和protected进行修饰的讲解
2020-08-26 03:09:10今天小编就为大家分享一篇关于Java的外部类为什么不能使用private和protected进行修饰的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 -
Java中public、protected、private和default的区别
2018-05-16 09:52:14public、protected、private和default都是java中的访问控制符其访问权限如下:public: 具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等等。它往往用于对外提供调用的形式。protected:主要用来... -
Ruby中的public、private、protected区别小结
2021-01-21 19:25:18重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”. 意思是:C++中,对于类... -
Java面试:protected和private修饰符的区别
2020-09-30 16:51:55private public修饰符很常见,很多人对protected和default的权限产生疑惑: 第一点:在同一个包中,protected和default表现一致,即,当main方法所在的类和使用了protected与default修饰属性、方法的类在同一个包... -
PHP中public、protected和private的区别
2018-04-09 12:28:22简单总结如下 -
ts类中的private和protected区别
2019-09-25 16:54:33ts类中的private和protected区别 private 私有的。表示最隐私,最不能为外人知道的。 在类中如果声明一个属性为私有,则表示这个属性仅仅属于这个类。 仅仅能在这个类中进行在这个属性的访问。在子类和类的实现的... -
PHP protected 和 private 的用法
2019-05-21 13:25:081.都不能通过对象直接调用。 2.protected只能通过parent::或者 this->调用 3.private只能通过this->调用 4.public则没有任何访问限制 -
JAVA中public、private、protected的区别
2020-03-15 23:26:41public、private、protected访问权限差别 -
public/private/protected 的区别
2019-07-19 10:46:141,public:对所有用户开放,所有用户都可以直接进行调用...2,private:只能在本类中使用,其他类都不可以直接使用。 3,protected:对于继承该类的方法没有任何限制可以自由使用,而其他的外部类则无法使用。 ...