虚继承内存布局:Base1,Base2各自有自己的虚表,因为自己类中有自己的虚函数。#include<iostream>
usingnamespacestd;
typedefvoid(*Fun)();
classBase
{
public:
virtualvoidfun1()
{
cout<<"Base::fun1()"<<endl;
}
public:
int_b;
};
classBase1:..
分类:
其他好文 时间:
2015-12-11 18:56:00
阅读次数:
163
相对第一次作业,使用了虚基类SHAPE和容器vector sv实现了POINT、LINE、TRIANGLE等形状的多态性,使用迭代器进行查找操作,不过还是有个bug,我发现将SHAPE里面的函数定义为虚函数,实现不了多态性,只有定义为纯虚函数时才能实现多态性,但是由于此时SHAPE为虚基类,不能定义...
分类:
其他好文 时间:
2015-12-11 01:29:11
阅读次数:
224
多态性:静态联编多态性(编译时的多态性)通过函数,运算符的重载实现的(系统根据形参的个数来实现编译的多态性)动态联编多态性(运行时的多态性)通过继承,虚函数(当运行时才能实现对象与函数的联编)C++规定:动态联编是在虚函数的支持下实现的 条件:指向派生类对象的基类指针或者引用派生类对象的基类引用(调...
分类:
其他好文 时间:
2015-12-11 01:21:21
阅读次数:
216
01:了解了SDK编程,消息队列,消息响应,消息循环,窗口函数等。02:可以冒号:父类构造函数和a(1)protected子类可以访问覆盖:父类子类之间 重载:同一个类中::作用域标识符,表明函数是属于哪一个类的父类和子类的对象首地址相同用虚函数实现多态纯虚函数为子类服务引用不需要占据内存可以用预编...
分类:
其他好文 时间:
2015-12-10 19:21:24
阅读次数:
178
重载、重写、重用 作用域:重载函数,它们的作用域相同;而重写和重用的函数作用域不同,出现在继承关系中。 重载:函数名必须相同,但是函数参数列表必须不同,返回值无所谓。 重写:函数名,参数列表和返回值类型都必须相同。出现于虚函数中,也叫覆盖。 重用:函数名相同即可,出现于派生类重用定义了其基类中的函数...
分类:
其他好文 时间:
2015-12-08 00:19:41
阅读次数:
123
1.虚函数(impurevirtual)C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。子类可以重写父类的虚函数实现子类的特殊化。如下就是一个父类中的虚函数:classA
{
public:
virtualvoidout2(strings)
{
cout<<"A(out2):"<<s&l..
分类:
编程语言 时间:
2015-12-07 16:26:15
阅读次数:
158
虚表注意display中打印成员变量时需注意(eg:string可能出错)当基类中没有子类对应虚函数,调试窗口不显示,需打印出来//#include<iostream>
//usingnamespacestd;
//typedefvoid(*Fun)();
//classAA
//{
//public:
// virtualvoidFun1()
// {
// cout<<"AAFun1(..
分类:
其他好文 时间:
2015-12-07 00:50:28
阅读次数:
151
关于类不断被继承的过程,从整体上看,是一个从抽象到逐渐具体化的过程,基类可以是非常非常抽象的东西,而最终实例化的派生类就非常具体了。虚函数的意义,就在于定义了一个从最早的基类到最终的派生类都可能会用到(根据需求可以选择重新实现还是不重新实现,但纯虚函数必须实现,关于原因,我已经在其他文章说过)的一个...
分类:
编程语言 时间:
2015-12-03 19:09:35
阅读次数:
109
C++程序员编码过程中经常会使用string(wstring)类,你是否思考过它的内部实现细节。比如这个类的迭代器是如何实现的?对象占多少字节的内存空间?内部有没有虚函数?内存是如何分配的?构造和析构的成本有多大?笔者综合这两天阅读的源代码及个人理解简要介绍之,错误的地方望读者指出。首先看看stri...
分类:
编程语言 时间:
2015-11-30 07:16:25
阅读次数:
259
#include using namespace std;/* *对于纯虚函数可以实现也可以不实现,但派生类一定要覆盖基类的纯虚函数.否则派生类仍然是抽象类 * *如果派生类覆盖基类的虚函数,则基类的指针或引用实际指向子类对象,那么通过该指针或引用调用虚函数时,将调用子类的虚函数;如果不是虚函数,则...
分类:
其他好文 时间:
2015-11-29 21:19:26
阅读次数:
165