类型识别分为两种:一种以编译时类型识别,一种是运行时类型识别;编译时类型识别:static_cast;运行时类型识别(RTTI),C++通过下面连个操作符提供RTTi;1)dynamic_cast操作符,将基类类型的指针或者引用安全地转换为派生类型的指针或者引用;2)typeid操作符,返回指针或者...
分类:
编程语言 时间:
2014-10-09 13:22:43
阅读次数:
253
这里我们给出一个使用RTTi的例子;考虑一个类层次,我们希望为它实现 operator==相等操作符:如果两个对象的给定数据成员集合的值相同,则它们就相等。每个派生类可以增加自己的成员,当然,测试相等的时候也要包含这些数据。对于类层次中有两个类型(一个基类,一个派生类),按照一般的方法,我们就需要实...
分类:
编程语言 时间:
2014-10-09 12:54:53
阅读次数:
381
下面是一段正确的代码://基类Apublic class A{ public void SomeMethod(A a) { }}//派生类Bpublic class B:A{}//在参数传递中,可以使用A类型的参数接收B类型的对象,代码如下:A a=new A();B b=new ...
分类:
其他好文 时间:
2014-10-09 12:37:33
阅读次数:
167
只要基类在定义成员函数时已经声明了virtue关键字,在派生类实现的时候覆盖该函数时,virtue关键字可加可不加,不影响多态的实现。
容易与隐藏混淆:
隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
1) 如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
2) 如果派生类的函数与基类的函...
分类:
编程语言 时间:
2014-10-09 02:26:07
阅读次数:
184
Windows消息分类 Windows消息分为系统消息和用户自定义消息。Windows系统消息有三种: 1.标准Windows消息。除WM_COMMAND外以WM_开头的消息是标准消息。例如,WM_CREATE、WM_CLOSE。 CWnd的派生类都可以接收到标准Windows消息、通知消息...
分类:
其他好文 时间:
2014-10-09 01:32:07
阅读次数:
241
C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-10-06 19:55:20
阅读次数:
236
C++赋值兼容原则:派生类的对象可以被赋值给基类对象。派生类的对象可以初始化基类的引用(指针也一样)C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。(这里我觉得要补充,重写的话可以有两种,直接重写成员函数和重写虚函...
分类:
编程语言 时间:
2014-10-06 16:00:30
阅读次数:
161
C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-10-04 13:09:06
阅读次数:
235
公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 2. 私有继承(...
分类:
编程语言 时间:
2014-10-04 11:54:36
阅读次数:
170
概述:一个不与具体事物相联系的类,只是表达一种抽象的概念,仅作为其派生类的一个基类,提供多个派生类可共享的基类的公共定义。声明:访问修饰符 abstract class 类名:基类或接口 { //类成员 } 说明:除abstract、class 和类名外,其他都可省略与非抽象类的区别:抽象类不能直接...
分类:
其他好文 时间:
2014-10-03 21:26:15
阅读次数:
163