[c++]派生类的应用

   在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增一个半径成员;能计

  算并输出圆的周长及加圆面积

  #ifndef __Dervide_circle__circle__

  #define __Dervide_circle__circle__

  #include

  using namespace std;

  #define PI 3.1415926

  class point

  { private:

  float x,y;

  public:

  point(void)

  {x=0;y=0;}

  point(float a,float b)

  {x=a ; y=b; }

  point(const point &ob)

  {x=ob.x;y=ob.y;}

  void set_point(float a,float b);

  float read_x(void);

  float read_y(void);

  float read_x(void) const;

  float read_y(void) const;

  void move(float a,float b);

  void move(float a,float b) const;

  };

  class circle :public point

  {

  public:

  circle(float a ,float b ,float c):point(a,b)

  {r = c;}

  void set_r(float a){r = a;}

  float Get_R(){return r;}

  void circumference();

  void squire();

  private:

  float r;

  };

  void point::set_point(float a,float b)

  {x=a ; y=b; }

  float point::read_x(void)

  { return x;}

  float point::read_y(void)

  { return y;}

  void point::move (float a,float b)

  { x+=a;y+=b;}

  float point::read_x(void) const

  { return x;}

  float point::read_y(void) const

  { return y;}

  //void point::move (float a,float b) const

  // { x+=a;y+=b;}

  void circle::circumference()

  {

  float c = 2*PI*r;

  cout"周长=""" endif="" float="" pre="" s="PI*r*r;" void="">

  class="brush:java;">#include"circle.h"

  int main()

  {

  circle C(1.2,2.0,3.0);

  cout"" return="">

时间: 2024-11-03 18:26:57

[c++]派生类的应用的相关文章

派生类-c++继承的时候同名函数的遮蔽问题

问题描述 c++继承的时候同名函数的遮蔽问题 派生类的函数和基类的函数同名时应该派生类的的遮蔽基类的,为什么这个程序最后运行的是基类的函数? 解决方案 因为楼主基类的display函数不是虚函数C++重要性质:1.如果你以一个""基类之指针""指向一个""派生类之对象"",那么经由该指针你只能调用该基类所定义的函数2.如果你以一个"派生类之指针"指向一个"基类之对象",你必须先做明显的转

派生类与派生类对象对基类成员的访问

区分"派生类对象"和"派生类"对基类成员的访问权限.    "派生类对象"对基类成员的访问权限:      (1)对于公有继承,只有基类的公有成员可以被"派生类对象"访问,其他(保护和私有)成员不能被访问.      (2)对于私有继承和保护继承,基类中所有成员都不能被"派生类对象"访问.    "派生类"对基类中成员的访问权限:     (1)对于公有继承,基类中的公有成员和保护成

TreeView 派生类: TreeViewEx 实现 NodeShowToolTip、NodeDo

// playyuer@Microshaoft.com invent//一个 TreeView 的派生类: TreeViewEx 实现 NodeShowToolTip.NodeDoubleClick 事件//1.实现了 NodeShowToolTip 事件,结合键盘 Ctrl 键显示及设置 ToolTipText//2.实现了 NodeDoubleClick 事件,可在调用中只响应"叶子"节点//3.点击 TreeView 空白处不选中任何节点//Class1.csusing Syst

TreeView 派生类: TreeViewEx 实现 NodeShowToolTip、NodeDoubleClick 事件

treeview // playyuer@Microshaoft.com invent//一个 TreeView 的派生类: TreeViewEx 实现 NodeShowToolTip.NodeDoubleClick 事件//1.实现了 NodeShowToolTip 事件,结合键盘 Ctrl 键显示及设置 ToolTipText//2.实现了 NodeDoubleClick 事件,可在调用中只响应"叶子"节点//3.点击 TreeView 空白处不选中任何节点//Class1.csu

C++中派生类的构造和析构顺序详解

派生类因为要调用基类, 所以构造和析构都是按照一定顺序进行; 构造的顺序是: 基(base) -> 派生(derived);即先构造基类, 再构造派生类; 因为 基类 是独立于派生类的, 即不会调用派生类中的对象, 所以应该先被生成; 如果派生类先于基类生成, 则因为无法调用基类资源, 可能生成失败; 析构的顺序是: 派生(derived) -> 基(base); 即先释放派生类, 再释放基类; 因为 派生类 需要先释放调用的基类资源, 所以应该优先释放; 如果基类先析构, 则有可能某些资源被

C++:阻止派生类(derived class)重新定义虚函数(final&sealed)

阻止派生类重新定义虚函数, 在java和C#中可以很简单的实现(finale&sealed), 但在C++中则需要使用public继承+复合(composition)的方法; 注意: 使用私有继承(private), 无法实现此要求. 如: /************************************************* File: test.cpp Copyright: C.L.Wang Author: C.L.Wang Date: 2014-04-11 Descripti

C++:派生类访问模板化基类(templatized base class)的命名

派生类继承模板化基类的成员函数, 默认是无法访问, 模板化基类的命名. 原因是模板的定制化有可能取消某些函数, 为了能在编译期检测出错误, 所以默认无法访问. 派生类访问模板化基类, 包含三种方法: 1. 调用基类函数时, 使用"this->", 指明调用的类, 是本类, 在编译时, 可以进行检查; 2. 使用using声明式, 可以把基类的函数引入派生类, 在编译时, 可以进行检查; 3. 使用显示修饰(explicit qualification), 不推荐, 显示修饰会屏蔽

C++:派生类强制转换为基类

在多态的使用时, 派生类的指针或引用可以转换为基类的指针或引用, 即基类的指针可以指向派生类的基类部分; Base* b = Derived* d; b和d指向的内容是相等的, b == d, 因为之间有一个隐式转换即 b == (Base*)d; b和d的地址是不同的 int(b) != int(d), 因为b指向d的基类部分, d指向的是完整的派生类; 但如果进行隐身转换, int(b) != int((Base*)d), 则地址相同. 代码如下: /* * test.cpp * * Cre

C#高级(五)继承,派生类,派生类的构造方法

一.基本概念 首先我们来了解两个基本概念:实现继承和接口继承 (1).实现继承,表示一个类派生于一个基类型,并拥有该基类型的所有成员字段和函数. (2).接口继承,表示一个类型只继承了函数的签名,没有任何实现的代码.在需要指定该类型具有某些可用的特性时,最好使用这种继承. 注意,在C#中,不支持多重继承,但一个类却可以实现多个接口.同样,结构总是派生于System.ValueType , 他们还可以派生于任意多个接口. 二.实现继承. (1).我们先来看个例子. using System;nam

在派生类中对虚方法进行重载

先让我们回顾一下普通的方法重载.普通的方法重载指的是:类中两个以上的方法(包括隐藏的继承而来的方法),取的名字相同,只要使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法. 而对基类虚方法的重载是函数重载的另一种特殊形式.在派生类中重新定义此虚函数时,要求的是方法名称.返回值类型.参数表中的参数个数.类型.顺序都必须与基类中的虚函数完全一致.在派生类中声明对虚方法的重载,要求在声明中加上override关键字,而且不能有new,static或virtual修饰符. 还是让我