2946: 填空:间接基类就是A

时间限制: 1 Sec  内存限制: 128 MB

提交: 132  解决: 96

题目描述

如下程序所示,D继承自B和C,而B和C均继承自A。根据继承的机制,D的对象将拥有其所有“祖先”允许其继承的成员,以及该类新增的成员。main函数也很明确,用输入的整数初始化对象,然后按格式输出对象的成员值。请在begin到end之间补足空白处该填写的成份后,提交begin到end之间的代码。

#include <iostream>

using namespace std;

class A

{

protected:

    int x;

public:

    A(int a)

    {

        x=a;

    }

};



//***************begin*****************

class B: ___(1)_____ A

{

protected:

    int y;

public:

    B(int a,int b):A(a)

    {

        y=b;

    }

};



class C:___(2)_____A

{

protected:

    int z;

public:

    C(int a,int b):A(a)

    {

        z=b;

    }

};



class D: _________(3)__________

{

private:

    int t;

public:

    D(int a, int b, int c, int d):_________(4)___________{}

    void output()________(5)_________

};

//***************end*****************

    void D::output()

    {

        cout<<"x from A: "<<x<<endl;

        cout<<"y from B: "<<y<<endl;

        cout<<"z from C: "<<z<<endl;

        cout<<"t from D: "<<t<<endl;

    }



int main( )

{

    int a, b, c, d;

    cin>>a>>b>>c>>d;

    D x(a,b,c,d);

    x.output();

    return 0;

}

输入

4个整数,将在D类对象的构造函数中,分别初始化来自几个类中的数据成员

输出

各个类中的数据成员的值

样例输入

1 2 3 4

样例输出

x from A: 1
y from B: 2
z from C: 3
t from D: 4

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>
using namespace std;
class A
{
protected:
int x;
public:
A(int a)
{
x=a;
}
};
class B: public A
{
protected:
int y;
public:
B(int a,int b):A(a)
{
y=b;
}
};
class C:public A
{
protected:
int z;
public:
C(int a,int b):A(a)
{
z=b;
}
};
class D
{
private:
int x,y,z,t;
public:
D(int a, int b, int c, int d):x(a),y(b),z(c),t(d) {}
void output();
};
void D::output()
{
cout<<"x from A: "<<x<<endl;
cout<<"y from B: "<<y<<endl;
cout<<"z from C: "<<z<<endl;
cout<<"t from D: "<<t<<endl;
}
int main( )
{
int a, b, c, d;
cin>>a>>b>>c>>d;
D x(a,b,c,d);
x.output();
return 0;
}

YTU 2946: 填空:间接基类就是A的更多相关文章

  1. YTU 2642: 填空题:类模板---求数组的最大值

    2642: 填空题:类模板---求数组的最大值 时间限制: 1 Sec  内存限制: 128 MB 提交: 646  解决: 446 题目描述   类模板---求数组的最大值    找出一个数组中的元 ...

  2. YTU 2636: B3 指向基类的指针访问派生类的成员函数

    2636: B3 指向基类的指针访问派生类的成员函数 时间限制: 1 Sec  内存限制: 128 MB 提交: 433  解决: 141 题目描述 领导类(Leader)和工程师类(Engineer ...

  3. C++学习20 虚基类详解

    多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如非常经典的菱形继承层次.如下图所示: 类A派生出类B和类C,类D继承自类B和类 ...

  4. 一目了然c++虚基类!

    #include <IOSTREAM.H> //基类 class CBase ...{ protected: int a; public: CBase(int na) ...{ a=na; ...

  5. C++虚基类详解(转)

    我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员.在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避 ...

  6. C++虚基类的作用

    虚基类的作用     当一个基类被声明为虚基类后,即使它成为了多继承链路上的公共基类,最后的派生类中也只有它的一个备份.例如:class CBase { }:class CDerive1:virtua ...

  7. C++学习之路—继承与派生(三):多重继承与虚基类

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 多重继承是指一个派生类有两个或多个基类.例如,有 ...

  8. OOP2(虚函数/抽象基类/访问控制与继承)

    通常情况下,如果我们不适用某个函数,则无需为该函数提供定义.但我们必须为每个虚函数都提供定义而不管它是否被用到了,这因为连编译器也无法确定到底会适用哪个虚函数 对虚函数的调用可能在运行时才被解析: 当 ...

  9. 详解C++中基类与派生类的转换以及虚基类

    很详细!转载链接 C++基类与派生类的转换在公用继承.私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成员的访问权限在派生类中 ...

随机推荐

  1. gitHub网站上常见英语翻译2

    repositories资料库 compilers with rich code analysis APIs.编译器具有丰富的代码分析API. plugins插件 With a variety of ...

  2. NYOJ-116士兵杀敌(二),树状数组~~

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...

  3. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]- Nearly Lucky Number(Codeforces Beta Round #84 (Div. 2 Only)A. Nearly)

    A. Nearly Lucky Number time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  4. POJ 1236 学校网络间的强连通

    题目大意: N个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输.问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件.问题2:至少需要添加几条 ...

  5. 【模拟】2017 Multi-University Training Contest 1 The Battle of Chibi

    acm.hdu.edu.cn/showproblem.php?pid=5542 [Accepted] #include<iostream> #include<cstdio> # ...

  6. JPA框架下使用纯粹的原生SQL

    最近遇到一个需求,查询数据库中对应表的字段是动态的,项目使用的框架使用JPA+Spring Boot,JPA自带原生SQL支持的传入参数是强类型的,无法用于查询语句的字段更改,因为插入字符串的话带有单 ...

  7. 【BZOJ1834】network 网络扩容(最大流,费用流)

    题意:给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的最小扩容费用. ...

  8. BZOJ2196: [Usaco2011 Mar]Brownie Slicing

    n<=500 * m<=500的方阵,先沿横坐标切A-1刀,再把每一块切B-1刀,得到A*B块,求这A*B块的数字之和的最小值的最大值. 最小值最大--二分,然后贪心切.每次扫一行,看这一 ...

  9. java遍历文件夹及所有子文件

    以前写代码循环文件夹和子文件时,总是自己写递归访问,今天研究lucene时,发现JDK给我们已经提供了访问遍历的方法,上代码: String str = "C:\\Users\\LLY\\D ...

  10. C++函数的重载,覆盖和隐藏(——高质量编程第14章)

      函数重载概念 只有C++才有重载的概念,C语言没有. 靠行参列表的不同来区别不同的重载函数, 若是全局函数和成员函数同名时,不算重载,因为它们的作用域不同,所以成员函数会将全局函数给隐藏(遮蔽)了 ...