友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
深入浅出MFC第2版(PDF格式)-第19部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
91
…………………………………………………………Page 154……………………………………………………………
第篇 勿在浮砂築高台
确地说则是,编译器不只是加上此静态对象,它还加上一个指针,指向对象之构造式及
其参数(如果有的话)。把控制权交给程序进入点(main 或WinMain)之前,startup 码
会快速在该串行上移动,调用所有登记有案的构造式并使用登记有案的参数,于是就初
始化了你的静态对象。
第四种情况(区域静态对象)相当类似C 语言中的静态区域变量,只会有一个实体
(instance )产生,而且在固定的内存上(既不是stack 也不是heap )。它的构造式在
控制权第一次移转到其声明处(也就是在MyFunc 第一次被调用)时被调用。
所谓 〃Unwinding〃
C++ 对象依其生存空间,适当地依照一定的顺序被析构(destructed )。但是如果发
生异常情况(exception ),而程序设计了异常情况处理程序(exception handling),
控制权就会截弯取直地「直接跳」到你所设定的处理例程去,这时候堆栈中的C++
对象有没有机会被析构?这得视编译器而定。如果编译器有支持unwinding 功能,就
会在一个异常情况发生时,将堆栈中的所有对象都析构掉。
关于异常情况(exception )及异常处理(exception handling ),稍后有一节讨论之。
RTTI )
执行时期型别信息 (
我们有可能在程序执行过程中知道某个对象是属于哪一种类别吗?这种在C++ 中称为
执行时期型别信息(Runtime Type Information ,RTTI )的能力,晚近较先进的编译器如
Visual C++ 4。0 和Borland C++ 5。0 才开始广泛支持。以下是一个实例:
#0001 // RTTI。CPP built by C:》 cl。exe …GR rtti。cpp
#0002 #include
#0003 #include
#0004 #include
#0005
#0006 class graphicImage
92
…………………………………………………………Page 155……………………………………………………………
第2章 C++ 的重要性伲�
#0007 {
#0008 protected:
#0009 char name'80';
#0010
#0011 public:
#0012 graphicImage()
#0013 {
#0014 strcpy(name;〃graphicImage〃);
#0015 }
#0016
#0017 virtual void display()
#0018 {
#0019 cout
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!