第13周阅读程序(3)

原创 2016年06月02日 09:25:08

问题及代码:

/*
*copyright (t) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:张晴晴
*完成日期:2016年6月2日
*版本号:v1.0
*问题描述:阅读程序--纯虚函数
*输入描述:
*程序输出:
*/



#include <iostream>
using namespace std;
class Base
{
public:
    virtual void Who() =0;//纯虚函数的声明,
};           
class FirstDerived:public Base
{
public:
    void Who() { cout<<"F"; }
};
class SecondDerived:public Base
{
public:
    void Who() { cout<<"S"; }
};
int main()
{
    FirstDerived first_obj;
    SecondDerived second_obj;
    Base &bref=first_obj;//类名后加上&的意思是引用
    bref.Who();//输出的是他引用的别人家的函数,所以输出F;
    bref=second_obj;//注意:派生类对象可以对基类对象赋值,所谓的赋值只是对数据成员赋值,
                    //对成员函数不存在赋值问题,赋值后不能企图通过基类的对象去访问派生类对象的成员,
                    //因为基类对象的成员和派生类对象的成员是不同的。
                    //所以这里的bref还是上面引用first_obj的内存,没有分配新的内存
    bref.Who();//还是输出F
    Base *bp;
    bp=&first_obj;//基类型的指针指向的是派生类的对象
    bp->Who();//输出的是他引用的别人家的函数,所以输出F;
    bp=&second_obj;
    bp->Who();//输出的是他引用的别人家的函数,所以输出S;
    return 0;
}

//纯虚函数是在基类中声明的虚函数,
//在基类中没有定义具体的操作内容,要求各派生类根据实际需要给出各自的定义。
//纯虚函数与一般的虚函数不同就是在后面加了"=0"。


运行结果:

学习心得:

解析写在上面的代码中。

注意这个程序中有基类对象的引用,还有几类对象的指针的用法,还有基类对象对派生类对象赋值的问题,

要注意引用是不重新分配内存的,而定义一个指针的时候,指针可以重新分配内存。

版权声明:本文为博主原创文章,未经博主允许不得转载。

第十一周阅读程序(补充)----(3)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:...
  • angeljing521
  • angeljing521
  • 2016年05月10日 17:08
  • 1059

第十一周阅读程序(5.4)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2...
  • angeljing521
  • angeljing521
  • 2016年05月10日 14:18
  • 1062

第十五周C++范型程序补充阅读(3)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2016年...
  • angeljing521
  • angeljing521
  • 2016年06月07日 14:25
  • 1917

第13周阅读程序——交通工具(3)

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 刘云 *完成日期 : 2016年5月25号 *版...
  • jingmin52296358al
  • jingmin52296358al
  • 2016年05月25日 19:12
  • 484

第13周-多态性-项目0-课后实践·阅读程序1.

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 * 完成日期:201...
  • Liuchang54
  • Liuchang54
  • 2015年05月29日 17:53
  • 938

14周阅读程序1.(3)(对纯虚函数的了解)

/* *程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserve...
  • TIAN19930910
  • TIAN19930910
  • 2013年05月31日 10:35
  • 613

第十三周项目-阅读程序-3

/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:刘涛 * 完成日期:2016年5月21日 *...
  • lemon_lebron
  • lemon_lebron
  • 2016年05月21日 11:20
  • 134

第12周阅读程序(1)(2)(3)(4)

* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 刘云 *完成日期 : 2016年5月11号 *版 ...
  • jingmin52296358al
  • jingmin52296358al
  • 2016年05月11日 16:50
  • 149

第十三周阅读程序-交通工具类(3)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:...
  • angeljing521
  • angeljing521
  • 2016年05月23日 12:33
  • 925

第3周课后实践·阅读程序(3)-利用函数访问私有数据成员

/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 * 完成...
  • Liuchang54
  • Liuchang54
  • 2015年03月20日 12:35
  • 603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第13周阅读程序(3)
举报原因:
原因补充:

(最多只允许输入30个字)