C++
yang_yulei
这个作者很懒,什么都没留下…
展开
-
C++的类型转换运算符(一)——static_cast 与 dynamic_cast
类型转换是一种机制,让程序员能够暂时或永久性改变编译器对对象的解释。注意,这并不意味着程序员改变了对象本身,而只是改变了对对象的解释。在很多情况下,类型转换是合理的需求,可解决重要的兼容问题。因此,程序员经常需要让编译器按其所需的方式解释数据,让应用程序能够成功编译并执行。 C++编译器仍需向后兼容以确保遗留代码能够通过编译,因此支持下面这样的语法:int* pBuf = (int *原创 2013-03-31 22:35:48 · 2367 阅读 · 0 评论 -
C++的类型转换运算符(二)——reinterpret_cast 与 const_cast
3、reinterpret_castreinterpret意为“重新解释”reinterpret_cast是C++中与C风格类型转换最接近的类型转换运算符。它让程序员能够将一种对象类型转换为另一种,不管它们是否相关。reinterpret_cast用在任意指针(或引用)类型之间的转换;以及指针与足够大的整数类型之间的转换;从整数类型(包括枚举类型)到指针类型,无视大小。(所谓"足够原创 2013-03-31 22:50:58 · 2858 阅读 · 0 评论 -
C++对象模型简介(二)——《深度探索C++对象模型》精简笔记
叁多重继承class A{public: A() {} virtual ~A() {} virtual int foo( ) { return val ; } virtual int funA( ) {}private: int val ; char bit1 ;} ;class B :{public:原创 2013-03-30 23:48:40 · 13435 阅读 · 0 评论 -
C++对象模型简介(一)——《深度探索C++对象模型》精简笔记
壹单一继承且无虚函数的对象模型class A{public: int foo( ) { return val ; } static int staFun( ) { return staVal ; } static int staVal ;private: int val ; char bit1 ;原创 2013-03-30 00:07:37 · 5775 阅读 · 1 评论 -
也谈面向对象
OO的三大基础是封装、继承、多态。这三者是有次序性的,没有封装就不可能有继承、没有继承就不可能有多态。 【封装(encapsulation)】封装的目的是要将代码切割成许多模块(module),每个模块之间的关连性降到最低,这么一来比较不会产生“牵一发而动全身”的状况,降低相互依赖的程度,也等于是降低复杂度,可以让开发与维护更容易。事实上,没有人用“模块”一词来称呼封装原创 2014-06-30 23:29:57 · 1446 阅读 · 1 评论