c++中继承 掩藏基类成员,访问父类对比c#
这方面看一个代码就可以
代码
//testclass.h
#include<stdio.h>
classbaseclass{
int a;
public:
voidcprint();
};
classextendclass1 : public baseclass{
public:
voidcprint();
};
//testclass.cpp
#include"testclass.h"
#include <iostream>
using namespace std;
voidbaseclass::cprint(){cout<<"baseclass"<<endl;}
voidextendclass1::cprint(){cout<<"extendclass1"<<endl;}//c#中,要想掩盖基类的成员需要new关键字
//main.cpp
#include "testclass.h"
int main(){
baseclass a;
baseclass *pa=newbaseclass();
baseclass *pt;
extendclass1 e;
extendclass1* pe=newextendclass1();
a.cprint();
e.cprint();//结果表明基类的函数隐藏了,
pe->cprint();
pe->baseclass::cprint();//类似于c#中base关键字
pt=(baseclass*)pe;
pt->cprint();//c#中也可以这样,这也是访问基类成员的方法
char c;
c=getchar();
}
c++中继承 掩藏基类成员,访问父类对比c#相关推荐
- 派生类对基类成员的访问控制之公有继承
公有继承 前面说过,派生类从基类继承时有三个步骤, 第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员, 第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和 ...
- 多继承的二义性和虚继承(虚基类)
一般来说,在派生类中对基类成员的访问是应该是唯一的.但是,由于在多继承的情况下,可能出现基类中某个成员的访问不唯一的情况,这称为对基类成员访问的二义性. 在多继承的情况下,通常有两种可能出现的二义性. ...
- C++改变基类成员在派生类中的访问属性
使用using声明可以改变基类成员在派生类中的访问属性.我们知道基类的公有成员经过公有继承,在派生类中其属性为public的,但是通过using 声明,我们可以将其改为private或protecte ...
- 不同派生方式下基类成员在派生类中的可访问范围属性
不同派生方式下基类成员在派生类中的可访问范围属性 派生方式 派生方式 派生方式 基类成员 公有派生 私有派生 保护派生 私有成员 不可访问 不可访问 不可访问 保护成员 保护 私有 保护 公有成员 公 ...
- C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨
原文: http://blog.csdn.net/zgjxwl/article/details/4804233 1.public继承方式下 #include <iostream> ...
- C++虚继承中的虚基类表
虚继承主要解决多重继承会在子类中存在多份拷贝的问题,这不仅浪费空间,而且存在二义性. 在之前的 C++ 继承中已经说过虚继承基本概念,这里不再赘述.这篇文章主要探究虚继承的原理.文章中多处给出了类实例 ...
- C++多继承中重写不同基类中相同原型的虚函数
在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: virtual void TestA(); }; class ...
- 使用“override”声明的成员函数不能重写基类成员_C++日志(三十五)虚基类与其子类的构造函数...
第三十四篇日志中提到,子类对象调用父类同名的函数时需要使用作用域标识符进行限定,这是在任何继承情况下都可以使用的普适方法. 问题引入: 考虑一种特殊的情况:子类全部或部分的基类(称为中间基类)同是继承 ...
- Java基类共同属性设置_多选择基类的访问属性-Java初学笔记
多选择基类的访问属性 你现在知道在定义类的访间属性时可用的选择项,你希望使用这些类定义子类.你知道在类继承上这些属性所具有的效果,但是你如何决定到底应该使用哪一个呢? 这里没有死板和现成的规则,你选择 ...
最新文章
- wordpress 重新生成附件文件名
- dubbo被阿里放弃原因_中间件小姐姐直播“带货”——阿里程序员必知的插件
- 牛客小白月赛12:月月给华华出题(欧拉函数)
- Java进阶之光!mysql创建用户并授权建表
- 百度北京一面2016-3-18
- Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt问题的解决
- vue手势滚动_vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
- 【论文阅读】Drug Similarity Integration Through Multi-view Graph Auto-Encoders | day4、5
- 好好把握人生的12种财富
- 音乐机器人活动教案_幼儿园小班音乐教案小熊跳舞律动活动反思【幼儿教案】...
- 【hdu 4658】Integer Partition (无序分拆数、五边形数定理)
- 三、北京54坐标系与西安80坐标系
- 电子设计从零开始(1)
- ODB++ 数据格式解析软件
- python计算与绘制抛物线
- 4836: [Lydsy1704月赛]二元运算(cdq分治 FFT)
- 信息安全数学基础(仅供个人复习使用)
- Windows 11和安全启动
- iconv命令的使用方法
- Java 近期新闻:Classfile API 草案、Spring Boot、GlassFish、Reactor 项目、Micronaut
热门文章
- jeecg的autopoi导入EXCEL时去除两端空格
- 苹果电脑重装苹果系统u盘启动制作10.15版本教程
- 物流信息技术应用现状及趋势
- 钉钉python 自动发消息软件_利用Python自动发送钉钉数据消息,一个简单的上手小项目...
- (二)DepthAI-python相关接口:OAK Pipeline
- 百岁山的故事背后--笛卡尔
- android opencv hdr,使用OpenCV 4.0映射HDR图像的色调
- python查找数列中重复数字_在数组中找出重复的数字(异或法)
- TLV_SignInfo_0x551
- shadow dom的作用和用法详解(createShadowRoot, attachShadow)