- 浏览: 763887 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
私有继承可以让子类访问父类的protected和public,但不能让子类的对象访问父类的protected和public
私有继承和受保护继承的派生类都可以和公有继承一样访问和修改基类的proteced和public的变量。
但
公有继承派生类的对象:可以直接访问和修改基类的公有变量,但不可以访问和修改受保护的
受保护继承和私有继承的派生类的对象:不可以直接访问和修改基类的任何变量
#include<iostream> using namespace std; class A{ protected: int i; public: A(){ i = 10; } void test(){ cout << "abc" << endl; } }; class B:private A{ public: B(){ test(); cout << i << endl; } }; int main(){ B b; //b.test(); //inaccessible //cout << b.i << endl;//inaccessible } abc 10
私有继承和受保护继承的派生类都可以和公有继承一样访问和修改基类的proteced和public的变量。
但
公有继承派生类的对象:可以直接访问和修改基类的公有变量,但不可以访问和修改受保护的
受保护继承和私有继承的派生类的对象:不可以直接访问和修改基类的任何变量
#include<iostream> using namespace std; class A{ public: int i; A():i(0),j(0){}; protected: int j; }; class B:public A{ public: B(){cout << j << endl;} }; class C:protected A{ public: C(){cout << i << "," << j << endl;} }; class D:private A{ public: D(){ i = 1,j=2; cout << i << "," << j << endl; } }; int main() { A a; B b; C c; D d; b.i = 3; //b.j = 4;//error //c.i = 1;//error //cout << d.i << endl;//error } 0 0,0 1,2
发表评论
-
柔性数组
2017-09-20 09:53 508#include <iostream> #i ... -
rawsocket发送icmp包
2017-09-06 09:54 662#include <stdio.h> #in ... -
查看glibc版本
2016-12-07 14:13 549strings /lib64/libc.so.6 |grep ... -
trim
2015-05-14 14:45 366/* trim from start */ ... -
log
2015-03-30 17:42 452log.h #ifndef __LOG_H__ #def ... -
输出类名
2014-02-20 21:51 588#include <iostream> us ... -
GC的改良
2013-10-17 22:05 577分代回收:对分配不久,诞生时间较短的“年龄”对象进行重点扫描, ... -
GC与引用记数
2013-10-16 21:57 696根(Root)就是判断对象是否可被引用的起始点。至于哪里才是根 ... -
pthread
2013-07-09 10:10 590#include <pthread.h> # ... -
const
2012-10-08 23:57 1158#include<iostream> usi ... -
声明与定义
2012-10-04 11:33 697extern int i;//声明但未定义 int j;//声 ... -
windows下iconv转码
2012-08-28 17:07 2854http://ah-fu.iteye.com/blog/281 ... -
在windows下使用pthread
2012-08-28 10:12 929http://hi.baidu.com/yylwuwei/bl ... -
消除编译器未使用的警告
2012-03-29 15:07 1117#define XXX_UNUSED(x) (void)x; ... -
消息队列
2012-03-27 16:56 1416msgget函数用于创建一个新的消息队列或访问一个已存在的消息 ... -
静态链接库
2012-03-16 16:54 714静态库是obj文件的一个集合,通常以.a为后缀,理论上执行速度 ... -
#if0
2012-03-07 13:45 1266#if 0 #endif 用于屏蔽注释中间的代码,避免注释嵌 ... -
枚举转char
2012-03-05 11:54 1021#define NAME(value) #value -
libevent相关
2012-02-03 11:04 1697void event_set(struct event *ev ... -
c++0x
2012-02-01 09:55 780http://blog.csdn.net/pongba/art ...
相关推荐
C++提供了三种不同的继承方式,每种方式对基类成员的访问权限有不同的规定,分别是公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。 1. 公有继承(public ...
C++ 中私有继承的作用 私有继承的 第一个规则:和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象转换成基类对象。 第二个规则: 从私有基类继承而来的成员都成为了派生类的私有成员,...
C++类的私有继承 在声明一个派生类时将基类的继承方式指定为private的,称为私有继承,用私有继承方式建立的派生类称为私有派生类(private derived class ), 其基类称为私有基类(private base class )。 私有基类的...
C++ 提供了三种继承方式:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance),每种方式都有不同的访问权限和行为。 1. **公有继承(Public Inheritance)** -...
C++中public继承、private继承、protected继承的例子
在C++中,继承方式有三种:公有继承、私有继承和保护继承。 公有继承是指基类中的公有成员和保护成员在派生类中仍然是公有成员和保护成员。基类中的私有成员在派生类中不可访问。公有继承的优点是可以继承基类的...
本节课程主要介绍C++中继承与派生的概念和使用方法,包括公有继承、私有继承和保护继承等不同的继承方式。通过实验和实践,掌握继承与派生的基本概念和使用方法。 继承的概念 继承是面向对象编程中的一种机制,它...
继承方式主要有三种:公有继承(public inheritance)、私有继承(private inheritance)和保护继承(protected inheritance)。在公有继承下,基类的公有和保护成员在派生类中保持相同访问级别;私有继承则使基类的...
- **私有继承(Private Inheritance)**: 私有继承下,派生类的成员不能直接访问基类的任何成员。如果派生类需要访问基类的成员,则必须通过派生类的成员函数来实现。这种继承关系通常表示为“has-a”关系。 - **...
- **私有继承(private)**:基类的所有成员在派生类中都被视为私有,包括原本的公有和保护成员。派生类内部可以访问基类的公有和保护成员,但外部代码不能直接访问基类的任何成员。 - **保护继承(protected)**...
派生类的声明方式有三种:公有继承(public)、私有继承(private)和保护继承(protected)。在声明派生类时,新类体中只需要定义新增加的成员——新数据成员、新成员函数。派生类的构成包括从基类中继承的全部成员...
//19.18 利用类的包含来实现代码重用 #include #include <limits> // 为了使用numeric_limits using namespace std; class Data { public: Data(int number,float Price):num(number),price(Price){} ...
私有继承是指基类的公有成员和保护成员都作为派生类的私有成员,不能被这个派生类的子类所访问,而基类的私有成员也仍然是私有的。保护继承是指基类的所有公有成员和保护成员都成为派生类的保护成员,不能被这个派生...
- **私有继承(private)**:基类的公有和保护成员在子类中变为私有。 - **保护继承(protected)**:基类的公有成员在子类中变为保护,保护成员保持不变。 4. **虚函数与多态** - **虚函数(virtual function)...
私有继承的特点是基类的公有成员和保护成员作为派生类的私有成员,并且不能被这个派生类的子类访问。保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问...
保护继承将基类的成员变为 protected 成员,而私有继承将基类的成员变为 private 成员。例如,在 SleeperSofa 类中,Bed 和 Sofa 两个基类的成员可以被保护继承或私有继承。 多重继承是一种强大的继承机制,它使得...
私有继承通常用来表示“is-implemented-in-terms-of”关系,即派生类是用基类实现的,但并不表示“is-a”关系。 5.4.3 保护成员和保护继承(Protected Inheritance) 保护继承方式下,基类的公有和保护成员在派生类...