C++CLI实验三.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文档。上传文档
查看更多
CCLI实验三

暨南大学本科实验报告专用纸 课程名称 成绩评定 实验项目名称 指导教师 实验项目编号实验项目类型 实验地点 5 学生姓名 学号 学院 系 专业 实验时间 6年 月 5 日 温度 湿度 3编程环境。 三、实验内容及分析 (一)类的定义 1.题意描述 构造并完善这个类的定义及实现。 2.最终实现的程序(需添加注释) #include stdafx.h using namespace System; ref class CTest //定义引用类CTest { private: //私有成员变量 int x, y, result; public: //公有函数 void init(int a, int b) { x = a; y = b; result = x - y; } void print(void) { Console::WriteLine(L{0}-{1}={2}\n,x,y,result); } }; int main(arraySystem::String ^ ^args) { CTest ^c = gcnew CTest; //定义CTest类指针 c-init(200, 60); //调用类c的init函数 c-print(); //调用类c的print函数 return 0; } 3.回答问题 1).在定义类时,其数据成员的变量命名对主函数有影响吗,为什么? 答:无影响。类数据成员变量名为private成员,不在类外被调用 2)指出构造函数和析构函数分别是在什么时候被调用的? 答:构造函数:系统在生成类的对象时自动调用 析构函数:对象所在的函数已调用完毕 答:当类的成员函数的函数体在类的外部定义时,必须由作用域运算符“::”来通知编译系统该函数所属的类。 4).如果定义了一个有参的构造函数,程序运行会出现什么问题(分别测试数值类和引用类),为什么? 答:默认的无参构造函数使得值类中每个成员的数据初始化为0,所有句柄成员初始化为nullptr.。有参构造函数使值类种的成员初始化为相应的数据。 (二)立方体 1.题意描述 在所给程序基础上,增加相应的构造函数,析构函数和终结器,通过运行结果显示出这些函数被何时调用,他们之间的顺序如何。 2.程序实现及注释 #include stdafx.h #include stdlib.h using namespace System; ref class Cube { private: double Length, Heigt, Width, Volume;// 长,高,宽和体积 public: Cube() : Length(0), Width(0), Heigt(0)// 显式默认构造函数 { Volume = Length * Width * Heigt; Console::WriteLine(L默认构造函数被调用,体积为:{0}, Volume); } Cube(double l, double w, double h) : Length(l), Width(w), Heigt(h) { Volume = Length * Width * Heigt; Console::WriteLine(L有参构造函数被调用,体积为:{0}, Volume); } ~Cube() { Console::WriteLine(L析构函数被调用); } void ShowRes(void) { Console::WriteLine(这个立方体的体积为:{0}, Volume); } }; int main(arraySystem::String ^ ^args) { Cube^ cube1 = gcnew Cube;// 调用无参构造函数 Cube^ cube2 = gcnew Cube(4, 5, 6);// 调用有参构造函数 cube2-ShowRes(); return 0; } 3.回答问题 1).在主函数中增加Cube类的对象(不是跟踪句柄,如Cube a,b(2,3,4);),观察运行结果。 答:int main(arraySystem::String ^ ^args) { //Cube^ cube1 = gcnew Cube;

文档评论(0)

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

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

1亿VIP精品文档

相关文档