友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

深入浅出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 
返回目录 上一页 下一页 回到顶部 9 10
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!