要求理解覆盖、重载、隐藏的概念与相互之间的区别;熟记类继承中对象、函数的访问控制;掌握虚函数、虚函数表、虚函数指针的联系;理解区分虚函数和虚继承在虚方法、虚指针在空间分配上的重点与难点;熟练使用多重继承,要求能区分基类的同名函数和基类的空间布局。...
分类:
编程语言 时间:
2015-07-25 20:03:16
阅读次数:
258
1.构造函数和析构函数里不应调用虚函数虚函数的多态是通过虚表和虚指针实现。虚表和虚指针是在基类和派生类初始化时逐层完善和建立。每个对象均有自己的虚表和虚指针。所以在基类构造函数里的虚表和虚指针是不完善的,调用虚函数会产生意外的结果。虚函数实现了晚绑定,析构是从最外层(晚派生)向最里层(早派生)进行析...
分类:
其他好文 时间:
2015-07-25 07:07:03
阅读次数:
140
C++多态的实现原理是依赖虚指针来辨别具体使用家族类中的哪一个函数。以下就来证明虚指针的存在。
我们知道,指针的大小在一般情况下是4个字节,所以我们建立一个虚函数,再来计算该类的大小,便可以验证虚函数的存在。
代码如下:#include
using namespace std;class A
{
public:
void print ()...
分类:
其他好文 时间:
2015-07-13 18:46:59
阅读次数:
134
http://www.cnblogs.com/DylanWind/archive/2009/01/12/1373919.html前部分原创,转载请注明出处,谢谢!classBase{public:intm_base;};classDerivedA:publicBase{public:intm_der...
分类:
编程语言 时间:
2015-04-21 01:35:03
阅读次数:
170
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚...
分类:
编程语言 时间:
2015-04-19 16:07:05
阅读次数:
142
测试程序:
//test.c#include"stdio.h"
#include"string.h"
class GSVirtual
{
public:
void gsv(char *src)
{
char buf[200];
strcpy(buf,src);
vir2();
}
virtual void vir1()
{
printf("vir1");
}
vir...
分类:
编程语言 时间:
2015-04-18 08:53:45
阅读次数:
355
虚函数虚函数就是用virtual来修饰的函数。虚函数是实现C++多态的基础。虚表每个类都会为自己类的虚函数创建一个表,来存放类内部的虚函数成员。虚函数表指针每个类在构造函数里面进行虚表和虚表指针的初始化。下面看一段代码://
// main.cpp
// VirtualTable
//
// Created by Alps on 15/4/14.
// Copyright (c) 2015年...
分类:
编程语言 时间:
2015-04-15 06:08:00
阅读次数:
185
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚...
分类:
编程语言 时间:
2015-03-07 15:28:02
阅读次数:
183
转自鱼C论坛1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4...
分类:
编程语言 时间:
2015-01-20 17:21:41
阅读次数:
205
#include using namespace std;//关于类不展现按位拷贝语义的几种情况/** *1.类的成员对象含有默认拷贝函数 *2.继承的基类包含拷贝函数(无论是合成的还是自己定义的) *3.有虚函数,因为虚指针按位拷贝有问题 *4.派生自虚基类 */ class Word{publ....
分类:
其他好文 时间:
2015-01-02 22:19:44
阅读次数:
290