基类和派生类的关系

news/2024/7/4 0:51:00 标签: c++, 编程, class, 继承
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

1 基类和派生类之间的特殊关系

假设有基类BaseClassA,它有方法MethodA()和私有方法MethodB();另有派生类InheritClassA继承于BaseClassA,它具有方法MethodC();

(1)派生类对象可以调用基类的方法。前提是该方法不能是私有的方法。

class="language-cpp"><pre name="code" class="cpp">InheritClassA class1;
class1.MethodA();              // 调用基类的公有方法

 但是,私有方法不能被调用: 

class="language-cpp">class1.MethodB()               // 是不正确的

(2)基类指针可以在不进行显示转换的情况下指向派生类对象;基类引用可以在不进行显式转换的情况下引用派生类对象。

class="language-cpp">InheritClassA class1;
<pre name="code" class="cpp">BaseClassA & classRef = class1 ;
class="language-cpp"><pre name="code" class="cpp">BaseClassA * classPtr = &class1 ;

 
 

但是,基类指针或引用只能调用基类的方法。

class="language-cpp">classRef.MethodA();
classPtr->MethodA();
而不能

class="language-cpp">classRef.MethodC();
classPtr->MethodC();
还有,不能将基类对象和地址赋值给派生类引用和指针。


http://www.niftyadmin.cn/n/1637040.html

相关文章

Linux下H.264码流实时RTP打包与发送

http://blog.csdn.net/jasonwang1002/article/details/12094419转自 由于项目要求在DM6467T平台上添加实时RTP打包发送模块&#xff0c;这才找了找有没有人分享 这方面的经验。这里需要感谢网友&#xff1a;yanyuan9527&#xff0c;他写的文章对我帮助很大&#xff0c;可以说让…

HashSet及LinkedHashSet源码分析(基于JDK1.6)

Java容器类的用途是“保存对象”&#xff0c;分为两类&#xff1a;Map——存储“键值对”组成的对象&#xff1b;Collection——存储独立元素。Collection又可以分为List和Set两大块。List保持元素的顺序&#xff0c;而Set不能有重复的元素。 本文分析Set中最常用的HashSet类&a…

多态公有继承

有时候&#xff0c;我们会需要同一个方法在派生类和基类中的行为是不同的。那么这种继承我们称为多态公有继承。 实现这种机制&#xff0c;可以有两种方法&#xff1a; &#xff08;1&#xff09;在派生类中重新定义基类的方法&#xff1b; &#xff08;2&#xff09;使用虚…

bss段,data段和text段的理解

1 首先&#xff0c;我们看一下程序在内存中的分布&#xff0c;如下&#xff0c; data/bss/text: text段在内存中被映射为只读&#xff0c;但.data和.bss是可写的。 bss是英文Block Started by Symbol的简称&#xff0c;通常是用来存放程序中未初始化的全局变量的一块内存区域&…

C语言命名规则

转自http://blog.csdn.net/zhyh1435589631/article/details/46405979 3 变量名的命名规则(1)变量的命名规则要求用“匈牙利法则”。 即开头字母用变量的类型&#xff0c;其余部分用变量的英文意思、英文的缩写、中文全拼或中文全拼的缩写,要求单词的第一个字母应大写。 即&…

宗溯软件拓展新式发展方向

随着宗溯官方网站更新上线后&#xff0c;宗溯软件开始走向新式的发展方向。宗溯的目标&#xff1a;宗溯立志于成为以企业内部系统运营维护为主的信息化服务领先品牌。市场的定位&#xff1a;面对当今激烈的市场竞争&#xff0c;宗溯将重心转向于企业系统运营及周边支持领域&…

I2C驱动详解

I2C讲解&#xff1a; 在JZ2440开发板上&#xff0c;I2C是由两条数据线构成的SCL&#xff0c;SDA&#xff1b;SCL作为时钟总线&#xff0c;SDA作为数据总线&#xff1b;两条线上可挂载I2C设备&#xff0c;如&#xff1a;AT24C08 两条线连接ARM9 I2C控制器&#xff0c;通过控制来…

嵌入式linux学习-ARM MMU工作原理分析

一 MMU的产生 许多年以前&#xff0c;当人们还在使用DOS或是更古老的操作系统的时候&#xff0c;计算机的内存还非常小&#xff0c;一般都是以K为单位进行计算&#xff0c;相应的&#xff0c;当时的程序规模也不大&#xff0c;所以内存容量虽然小&#xff0c;但还是可以容纳当…