面向对象程序设计第六章:继承

简介: 面向对象程序设计第六章:继承

由圆构造圆柱

【问题描述】

【输入形式】

【输出形式】

【样例输入】

【样例输出】

【样例说明】

【评分标准】

//Circle.h
#include<iostream>
using namespace std;
class Circle
{
public:
  Circle(void);
  Circle(float r);      //定义一个圆
  float getArea();      //圆的面积
  float getGirth();     //圆的周长
  static const  float PI ;
protected:
  float mR;             //圆的半径
};
const float Circle::PI=3.14;
Circle::Circle(void)
{
  mR=0;
}
Circle::Circle(float r):mR(r)
{
}
float Circle::getArea()
{
  return PI*mR*mR;
}
float Circle::getGirth()
{
  return 2*PI*mR;
}
//main.cpp
//#include"Cylinder.h"
//#include"Circle.h"
class Cylinder:public Circle
{
public:
  Cylinder(float t,float m):Circle(t)
  {
    mH=m;
  }
  float getArea()
  {
    return Circle::getGirth()*mH+2*Circle::getArea();
  }
  float getVol()
  {
    return Circle::getArea()*mH;
  }
private:
  float mH; 
};
//main.cpp
//#include"Cylinder.h"
//#include"Circle.h"
#include<iostream>
using namespace std;
int main()
{
  float t, m;
  cout << "请输入圆的半径:";
  cin >> t;                                       //键盘接收圆的半径
  Circle c1(t);
  cout <<"圆的面积为:"<< c1.getArea() << endl;
  cout << "请输入圆柱的高:";
  cin >> m;                                       //键盘接收圆柱的高
  Cylinder c2(t, m);
  cout <<"圆柱的表面积为:"<< c2.getArea() << endl;
  cout <<"圆柱的体积为:"<< c2.getVol() << endl;
}

编写长方体

【问题描述】利用给定的矩形类,编写长方体类

【输入形式】

【输出形式】

【样例输入】

【样例输出】

【样例说明】

【评分标准】

class Rect
{
public:
  Rect(float l, float w);            //定义矩形接受长和宽
  float getArea();                   //矩形面积
protected:
  float mLength;                      //定义长
  float mWidth;                       //定义宽
};
Rect::Rect(float l,float w)
{
  mLength=l;
  mWidth=w;
}
float Rect::getArea()
{
  return mLength*mWidth;
}
class cubiod:public Rect
{
  public:
    cubiod(float l,float w,float h);
    float getVol();
    float Area();
  private:
    float mHeight;
};
cubiod::cubiod(float l,float w,float h):Rect(l,w)
{
  mHeight=h;
}
float cubiod::getVol()
{
  return Rect::getArea()*this->mHeight;
}
float cubiod::Area()
{
  return 2*Rect::getArea()+2*this->mLength*this->mHeight+2*this->mWidth*this->mHeight;
}
#include<iostream>
using namespace std;
int main()
{
  int j, k, l;                                   
  cout << "请输入矩形的长和宽:";
  cin >> j >> k;                                            //键盘接收长和宽
  Rect r1(j, k);
  cout <<"矩形的面积为:"<< r1.getArea() << endl;
  cout << "请输入立方体的高:";
  cin >> l;                                                 //接受高
  cubiod c1(j,k,l);
  cout <<"立方体体积为:"<< c1.getVol() << endl;
  cout <<"立方体表面积为:"<< c1.Area();
  return 0;
}

1.继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类会自动继承间接基类的成员

B

A 规律性

B 传递性

C 重复性

D 多样性

  1. 下面对派生类的描述错误的是
    D
    A 一个派生类可以作为另外一个派生类的基类
    B 派生类至少有一个基类
    C 派生类的成员除了它自己的成员外,还包含了它的基类的成员
    D 派生类中继承的基类成员的访问权限在派生类中保持不变

#include<iostream >
using namespace std;
class A{
public:
A(){cout<<“A”;}
~A(){cout<<“-A”;}
};
class B:public A{
A*p;
public:
B(){cout<<“B”;p=new A();}
~B(){cout<<“-B”;  delete p;}
};
int main()
{
B obj;
return 0;
}

执行这个程序的输出结果是( )

B

A BAA-A-B-A

B ABA-B-A-A

C BAA-B-AA

D ABA-AB-A


有以下程序:

#include<iostream >
using namespace std;
class Base{
public:
     void fun(){cost<<“Base::fun”<<endl;}
};
class Derived:public Base{
public:
void fun(){
_______________
cout<<“Derived::fun”<<endl;
}
};
int main() {
Derived d;
d.fun();
return 0;}

已知其执行后的输出结果为:

Base::fun

Derived::fun

则在程序中下划线处应填入的语句是( )。

B

A Base.fun( );

B Base::fun( );

C Base->fun( );

D fun( );


目录
相关文章
|
6月前
|
Java 物联网 测试技术
Java面向对象程序设计3面向对象基础
Java面向对象程序设计3面向对象基础
330 0
|
C++
20 C++ - 面向对象程序设计案例
20 C++ - 面向对象程序设计案例
84 0
|
6月前
|
存储 数据安全/隐私保护 C++
基于C++的面向对象程序设计:类与对象的深入剖析
基于C++的面向对象程序设计:类与对象的深入剖析
76 1
|
6月前
|
设计模式 Java 数据安全/隐私保护
Java面向对象程序设计
Java面向对象程序设计
33 0
面向对象程序设计(OOP)的基本概念
面向对象程序设计(OOP)的基本概念
190 0
|
存储
面向对象程序设计第四章
面向对象程序设计第四章
128 1
面向对象程序设计第四章
|
存储 Java
面向对象程序设计概述
面向对象程序设计概述
197 0
|
编译器 C++
c++面向对象程序设计教程——类(一)
c++面向对象程序设计教程——类(一)
169 0
|
C++
c++面向对象程序设计教程——类(二)
c++面向对象程序设计教程——类(二)
118 0
面向对象程序设计第七章:继承与派生
面向对象程序设计第七章:继承与派生
141 0
面向对象程序设计第七章:继承与派生