继承 --判断

/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作    者:马广明
* 完成日期:2014 年 5 月 13 日
* 问题介绍: 继承的判断
* 版 本 号:v1.0
*/
#include <iostream>
using namespace std;
class A                   //A为基类
{
public:
    void f1( );
    int i;
protected:
    void f2();
    int j;
private:
    int k;
};
class B: public A       //B为A的公用派生类
{
public:
    void f3( );
protected:
    int m;
private:
    int n;
};

class C: public B       //C为B的公用派生类
{
public:
    void f4();
private:
    int p;
};

int main()
{
    A a1;              //a1是基类A的对象
    B b1;              //b1是派生类B的对象
    C c1;              //c1是派生类C的对象
    return 0;
}
//(1)在main函数中,能否用b1.i,b1.j和b1.k引用派生类中的基类A的成员i, j k?
//只能调用i
//(2)派生类B中的成员能否调用基类A中的成员函数f1和f2?
//能
//(3)派生类B中的成员函数能否引用基类A中的数据成员i, j k?
//只能引用i,j
//(4)能否在main函数中用c1.i, c1.j, c1.k, c1.m, c1.n, c1.p基类A的成员i, j k、派生类B的成员m, n、以及派生类C的成员p?
//能调用c1.i,
//(5)能否在main函数中用c1.f1(), c1.f2(), c1.f3()和c1.f4()调用f1, f2, f3, f4成员函数?
//能调用c1.f1(),c1.f3(),c1.f4()
//(6)派生类C的成员函数f4能否调用基类A中的成员函数f1, f2和派生类中的成员函数f3?
//能

继承 --判断

时间: 2024-08-29 20:29:28

继承 --判断的相关文章

C# 反射 判断类的延伸类型

添加测试类: public class TestClass2 : TestClass1 { } public class TestClass1 : TestClass0 { public override void TestMethod() { } } public class TestClass0 : ITestInterface { public virtual void TestMethod() { } } public interface ITestInterface { } 1.判断是

Overloads和Overrides在元属性继承上的特性

元属性继承可以使用IsDefined函数进行判断,先写出结论 如果使用Overrides,则元属性可以继承,除非在使用IsDefined时明确不进行继承判断,如 pFunction.IsDefined(GetType(DisplayNameAttribute), False) 如果使用Overloads,则元属性不能继承, 如下为测试源码: Sub Main() 'Dim s As New S3() 's.Method() 'CType(s, S2).Method() 'CType(s, S1)

C#笔记誊录

1.继承 面向对象的三大特征: 封装性 继承性  多态性 一.继承:类与类的关系 为什么会用继承:减少代码重复 优化 空间内存 实现多态  class 基类 { //基类成员 } class 子类:基类 { //子类成员 } 判断继承关系 用进行进行判断-->子类对象 is 父类成员 例如 诺基亚手机  诺基亚280  诺基亚板砖007 继承特征 :1.单根性  一个只能继承自一个类 不可能继承俩个类                  2.传递性   爷爷 父亲 孙子              

MyEclipse相关用法介绍

MyEclipse相关用法介绍 ================================================================================ 编辑: Ctrl+Shift+L      显示所有快捷键 Ctrl+K        参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K      参照选中的词(Word)快速定位到上一个 Ctrl+O         快速显示OutLine Ctrl+T        快速显示当前类的

myeclipse使用经验总结

0. 快捷键 ============================================================= 编辑: Ctrl+Shift+L显示所有快捷键 Ctrl+K参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K参照选中的词(Word)快速定位到上一个 Ctrl+O快速显示OutLine Ctrl+T快速显示当前类的继承结构 Ctrl+Shift+X把选中文本全部改为大写 Ctrl+Shift+Y把选中文本全部改为小写 Ctrl+Shift+F

Python 学习 第十篇 CMDB用户权限管理

不管是什么系统,用户权限都是至关重要的.所以我在注册用户的时候,就为他们分了两种权限.一种是普通用户的权限,一种是管理员权限.普通用户在数据库中的value是user,管理员的value是admin. 因为我想设计的系统是只有一位管理员的.所以这里我没有根据角色来进行判断.而是根据他的用户名来判断.管理员的用户名是唯一的,那就是admin. 闲话少说,先把注册用户的代码贴上来 逻辑端: @app.route("/adduser",methods=['GET','POST']) def 

原生JS面向对象思想封装轮播图组件

原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能实现都分别分为不同的模块.目前我封装的这个版本还不适配移动端,只适配PC端. 主要的功能有:自动轮播,点击某一张图片对应的小圆点就跳转到指定图片,有前后切换按钮.使用的时候只需要传入图片的路径以及每张图片分别所对应的跳转路径还有目标盒子ID就可以了,还可以自定义每张图轮播的延时,不过延时参数不是必须

Myeclipse常见快捷键及配置

0. 快捷键 ================================================================================ 编辑: Ctrl+Shift+L 显示所有快捷键 Ctrl+K 参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K 参照选中的词(Word)快速定位到上一个 Ctrl+O 快速显示OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+Shift+X 把选中文本全部改为大写 Ctrl+Shift+

优雅的类写法

前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的. 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类. 一.例子 例子为一个轻提示组件Toast. 需要实现的功能: on方法,显示提示 off方法,隐藏提示 init方法,初始化提示语 function Toast(option){ this.prompt = ''; this.elem = null; this.init(option); } Toast.prototype = {