软工130_2016011313_李海峰_实验二.docVIP

  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文档。上传文档
查看更多
软工130_2016011313_李海峰_实验二

实 验 报 告 课程名称 C++ 程 序 设 计 实验项目 深入理解C++的面向对象编程 实验仪器 PC 兼 容 机 系 别 软 件 工 程 专 业 软 件 工 程 班级/学号 软工1301 2013011313 学生姓名 李海峰 实验日期 2014/12/26 成 绩 _______________________ 指导教师 郝 保 水 一、实验目的 理解继承概念,能够根据题目,正确地对事物进行抽象,并建立其继承关系。 理解C++内存模型。 进一步掌握C++,能够编写稍微复杂的程序。 实验题目 使用VC2010里面的调试工具,分析和解决388页6题,并指出每个类对象的大小和内存布局。(提示:观察内存地址依次点击调试菜单、窗口子菜单、内存等)。 此题能够帮助大家进一步理解C++对象模型。建议先从单继承开始,然后逐步复杂化。例如:定义class B: class B { public: int a; public: B(){a=3;} }; 然后定义class A: class A:public B { … }; 仔细分析B和A的内存模型,然后借助VC工具,看是否是这样的。 解答: f1 f2 i f3 k B::m f4 C::m n f5 p q A √ √ √ B √ √ √ √ √ C √ √ √ √ √ √ √ D √ √ √ √ √ √ √ √ √ 对象a1的大小为4,b1的大小为12,c1的大小为20,d1的大小为28. 内存布局如下图所示: 代码: #includeiostream using namespace std; class A { public: void f1(); A(); protected: void f2(); private: int i; }; A::A() { i = 1; } class B:public A { public : void f3(); int k; B(); private: int m; }; B::B() { k = 2; m = 3; } class C :protected B { public : void f4(); C(); protected: int m; private: int n; }; C::C() { k = 2; m = 3; n = 4; } class D :private C { public: void f5(); D(); protected: int p; private: int q; }; D::D() { k = 2; m = 3; p = 4; q = 5; } int main() { A a1; B b1; C c1; D d1; cout A: sizeof(a1) endl; cout B: sizeof(b1) endl; cout C: sizeof(c1) endl; cout D: sizeof(d1) endl; return 0; } 分析总结: 在派生类中,成员有4种不同的访问属性: 公共的,派生类内和派生类外都可以访问 受保护的,派生类内可以访问,派生类外不能访问,其下一层的派生类可以访问。 私有的,派生类内可以访问,派生类外不能访问。 不可访问的,派生类内和派生类外都不能访问。 391页11题。 此题帮助大家进一步理解继承,并具有初步编程能力。 运行结果: 代码: #includeiostream #includestring using namespace std; class Date { public: void display(); Date(int y, int m, int d):year(y), month(m), day(d){}; Date(); private: int year; int month; int day; }; void Date::display() { cout The date is year / month / day endl; } Date::Date() { year = 1000; month =

文档评论(0)

enxyuio + 关注
文档贡献者

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

1亿VIP精品文档

相关文档