第2章C++面向对象设计精选.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. dynamic_cast运算符语法结构如下: dynamic_cast Type-ID ( EXP ) 该运算符的功能是将EXP转换成Type-ID类型,要求Type-ID必须是类的指针、引用或void*类型,EXP必须是一个具体的指针或引用。如果EXP是Type-ID类型的基类指针,程序运行时该运算符检查EXP是否指向Type-ID类型(派生类)的对象,如果是,运算结果是该Type-ID类的对象的指针,否则为 NULL(空)。 2. typeid 运算: 利用typeid运算符不仅可以确定一个对象是否属于类继承层次中的某个类,还可以识别程序运行时一个对象的真实类型。 例 使用typeid运算符识别对象的实际类型。 CMyClass my; cout“Class Name of my: ”typeid(my).name()endl; int i=12345; if(typeid(i)!=typeid(my)) coutThe type of i is not CMyClass !endl; if(typeid(i)!=typeid(float)) coutThe type of i is not float !endl; if(typeid(i) = = typeid(123)) coutThe type of i is int !endl; 2.7.4 编程规范 为了阅读理解源程序,Visual C++源程序中变量的取名一般采用匈牙利表示法则。该法则要求每一个变量名都有一个前缀,用于表示变量的类型,后面是代表变量含义的一串字符。 例如:前缀n表示整形变量,前缀sz表示以0结束的字符串变量,前缀lp表示指针变量。这些前缀还可以组合起来使用。前缀一般是小写字母,前缀后的第一个字符要大写。如:nWidth表示一个整形变量,lpszMyname表示一个字符串的指针。 在给类和成员变量取名时也使用特定的前缀,如CView是一个类(视图类),m_xStart是一个类的整形成员变量(起点的X坐标)。 Visual C++中的前缀及说明 前缀 表示的类型 例 子 a 数组变量 aScore[50] b 布尔变量 bFlag,bIsEnd c 字符变量 cSex n,i 整形变量 nWidth,iNum x、y 无符号整形变量(X、Y坐标) xStart,yPos s 字符串变量(不常使用) sMyName sz 以0结束的字符串变量 szMyName p 指针变量 pszString,pMyDlg lp 长指针变量 lpszMyname h 句柄 hWnd,hPen,hDlg fn 函数 FnCallBack() m_ 类的成员变量 m_xStart C 类和结构 CDialog,CView,CMysdiApp,CRuntimeClass Afx,afx,AFX 应用程序框架 AfxGetApp(),afx_msg ID*_ 资源标识 ID_,IDD_,IDC_,IDB_,IDI_ * * * * * * * * * 3. 使用虚基类 虚基类并不是一种新的类型的类,而是一种派生方式。采用虚基类方式定义派生类,在创建派生类的对象时,类层次结构中虚基类的成员只出现一次,即基类的一个副本被所有派生类对象所共享。 class B class C class D class A D A B C 虚基类派生方式的定义: 例 采用virtual虚基类方式定义派生类。 class B : virtual public A { public: int b; }; class C : virtual public A { public: int c; }; 主函数中: d1.a=100; 采用虚基类方式定义派生类的方法是在基类的前面加上关键字virtual,而定义基类时与一般基类完全一样。 使用虚基类派生方式的好处: 节约内存空间; 避免在多重派生类中类成员的不明确性。 2.4 多态性和虚函数 何谓多态性? 多态性也是面向对象程序设计方法的一个重要特征,它主要表现在函数调用时实现“一种接口、多种方法”。 两种多态性:编译时多态性和运行时多态性。 编译时多态性:在函数名或运算符相同的情况下,编译器在编译阶段就能够根据函数参数类型的不同来确定要调用的函数 —— 通过重载实现。 运行时多态性:在函数名、函数参数和返回类型都相同的情况下,只能在程

文档评论(0)

2226657222 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档