发现昨天一天读完第一章.也只是囫囵吞枣.也可能是自己代码打的太少了,有些地方不可以理解.但是解决了好多我之前的疑问.为什么c++指针储存的地址,却需要类型.struct和class的区别到底是什么.
有写地方有点乱...不过还是忍住读完了...
感觉是c++primer第十五章的扩展.
首先讲了对象模型在内存中的样子.画图有点麻烦之前也有人写过.所以把他的贴上来.我觉得写的很好...
吴秦的博客
- 基类武罗在继承串链中被派生多少次,永远只有一个实例(subobject),例如virtual ios base class中的一个实例
关键词差异.
struct和class...其实就我而言我是不喜欢写struct的...没有为什么..就像太阳总是在明天早上升起来一样...
c++支持多态的方法:
- 把一个派生类指针转化成一个基类指针.
这样会剪切掉基类的部分. - 通过虚函数机制
- 经由dynamic_cast和typeid运算符
多态的主要用途是经由一个公共的接口来影响类型的封装,这个借口通常定义在一个抽象的基类中.
指针类型会交到编译器如何解释某个特定地址中的内存内容及其大小.
Bear b;
Zooanimal *pz = &b;
Bear *pb = &b;
/*
pb所蕴含的地址包含整个Bear object,pz所云航的地址只包含Bear 中的
Zooanimal subobject
Zooanimal是基类,Bear是派生类
除了在Zooanimal中出现的成员pz无法操作任何member
唯一例外是操作virtual*/
一个指针和一个引用之所以支持多态,是因为它们不引起内存中的任何"与类型有关的内存委托操作";会受到改变的只是他们所指向的内存的"大小和内容解释方式".
无知就是幸福..没读之前.我还感觉我这块贼6......读过后疑问更多.
网友评论