c++模型

来源:互联网 发布:破解软件平台 编辑:程序博客网 时间:2024/06/09 20:25

每一个类对象被添加一个指针,指向相关的虚函数表,虚函数表的设定和重置都由每一个对象构造运算符,析构运算符和拷贝赋值运算符自动完成。


指针的类型指出内存的大小,因此如果是void*类型的指针,只能够含有一个地址,而不能通过它操作所指的object。 

指针的类型转换并不改变一个指针所含的真正地址,只影响”被指出的内存大小和内容“


当一个base class object被直接初始化为一个derived class object时,derived class objec会被切割,多态不再呈现

如果某个object含有一个或者一个以上的虚函数表,那base class object虚函数表的内容不会被初始化或改变。 



c++以下列方法支持多态

1、经由一组隐含的转化操作,例如把一个Derived class指针转化为一个指向其Public base type的指针。

shape *ps=new circle()

2、经由virtual function机制

ps->rotate()

3、经由dynamic_cast和typeid运算符

if(circle *pc =dynamic_cast<circle *> (ps))



原创粉丝点击