1.在一般情况下,指向一种类型对象的指针不允许指向另一种类型的对象,然而指向基类对象的指针可以指向该基类的共有派生类对象(反过来不成立),这是运行时,多态的基础。指向基类队象的指针指向派生类对象后,可以访问派生类中有基类继承下来的成员,但不能访问那些派生类对象自己增加的成员。
2.一个含有虚函数的类称为多态类。
3.虚函数就是在一个类中用virtual定义的成员函数。基类的虚函数在派生类中仍是...
分类:
编程语言 时间:
2014-06-07 01:27:01
阅读次数:
236
/*
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:马广明
*完成日期:2014 年 5 月 27 日
*版本号:v1.0
*问题描述:求各种立体体积。
*输入描述:无。
*程序输出:正方体,球体,圆柱体面积及体积
*问题分析:
*算法设计:
*/
#include
using names...
分类:
其他好文 时间:
2014-06-05 04:30:10
阅读次数:
206
#include
using namespace std;
class Shape
{
public:
virtual double area()=0;
};
class Circle:public Shape
{
public:
Circle(double r):R(r) {}
virtual double area()
{
...
分类:
其他好文 时间:
2014-06-05 03:40:40
阅读次数:
219
/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者:马广明
* 完成日期:2014 年 5 月 27 日
* 版 本 号:v1.0
* 问题描述:动物这样叫
*/
#include
using namespace std;
class Animal
{
public:
vi...
分类:
其他好文 时间:
2014-06-04 23:18:59
阅读次数:
294
/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者:马广明
* 完成日期:2014 年 5 月 27 日
* 版 本 号:v1.0
* 问题描述:形状类中的纯虚函数
*/
#include
using namespace std;
const double PI=3.14;
class Sha...
分类:
其他好文 时间:
2014-06-04 22:02:45
阅读次数:
234
C++对象模型内存布局例如以下:非静态数据成员在对象之内静态数据成员在对象之外静态、非静态成员函数在对象之外类中存在虚函数时,一个类相应一个virtual
table放在对象之外,对象中安插一个指针vptr指向这个表。測试例程:#include using namespace std; class....
分类:
编程语言 时间:
2014-06-03 09:58:23
阅读次数:
283
虚函数与纯虚函数:
虚函数:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,virtual 函数返回类型 函数名(参数表){函数体;}
,实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。注意虚函数在基类中是有定义的,即便定义是空。 纯虚函数...
分类:
编程语言 时间:
2014-05-31 18:36:09
阅读次数:
354
把类的公共方法提取出来成为一个抽象基类,这就是接口即接口是对外的部分,继承接口的类是实现部分接口的唯一目的是强制派生类以虚函数的方式实现组件接口的方法接口完整的描述了C++中Vtable的布局COM只能通过一个Vtable指针来提供对它组件的访问,对组件实现的访问是不能的COM的核心概念----通过...
分类:
编程语言 时间:
2014-05-31 18:24:31
阅读次数:
276
和Java不同,CDerive
derive语句可以直接生成对象,不需要new关键字重载虚函数才可以用父类引用调用子类对象,重载普通函数没有效果#include#includeusing
namespace std;class CBase{public : void fun() { ...
分类:
编程语言 时间:
2014-05-30 14:46:07
阅读次数:
247