面向对象C++实验报告_第1页
面向对象C++实验报告_第2页
面向对象C++实验报告_第3页
面向对象C++实验报告_第4页
面向对象C++实验报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计-C+上机实验报告 第 一 次:熟悉Visual C+开发环境及上机过程实验实验时间: 2015 年3月 11 日 实验室: S311 实验题目:使用Visual C+ 6.0集成环境来编辑、编译并运行程序1:#include <iostream>using namespace std;class TAddpublic: TAdd(int a,int b) x=a;y=b; cout<<"constructor."<<endl; cout<<x<<","<<y<

2、<endl;TAdd() cout<<"destructor."<<endl; cout<<x<<","<<y<<endl;int add()return x+y; private: int x,y;int main()TAdd p1(3,4);cout<<"x+y="<<p1.add()<<endl;TAdd p2(30,40); cout<<"x+y="<<p2.add()&

3、lt;<endl; return 0;实验目的:1、 了解和使用该相应的软件;2、 熟悉VC环境的基本命令和功能键;3、 熟悉常用的功能菜单命令;4、 会编译、链接、运行程序;5、 调试程序时若出现报错,能改正相应的错误;6、 学习使用VC+环境的帮助;7、 学习完整的C+程序开发过程;8、 理解简单的C+程序结构。实验要求:1.复习教材有关内容。2.掌握VC控制台应用程序的开发、调试步骤。3.完成实验报告。实验主要步骤:1、创建新工程(1)单击菜单“文件/新建”,显示“新建:”对话框。(2)在此对话框的列表栏中,选择“Win32 Console Application”(Win32控制

4、台应用程序”)。在 “工程”栏中输入一个工程名。在位置文本框中选择工程所在的路径,单击“确定”按钮。(3)在弹出的“Win32 Consol Application-Step 1 of 1” 对话框中选择An empty project单选项。然后单击“Finish”按钮。(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。2、创建C+源程序文件(1)编辑C+源程序:编辑C+源程序时,选择“文件”菜单项,在弹出的子菜单中选择新建(热键为Ctrl+N)。(2) 选择“文件”选项卡,在此属性页中选择“C+ Source File”,单击“确定”。(3)在“C+源程序编辑”窗口下编辑

5、C+源程序。在编辑窗口键入相应的C+源程序。3编译连接和运行源程序(1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译 eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。错误信息包括错误所在大致位置和错误的性质。用户可根据这些错误信息进行修改。(2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件 eg1-1.exe”选项。“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。(3)执行可执行文件的

6、方法是选择“编译”菜单项中“执行 eg1-1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中。4关闭工作区、打开工作区单击菜单“文件/关闭工作区”,关闭工作区。单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:C+实验实验一实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改。实验结果:心得体会:这个实验要求不高,只是希望我们能够初步了解C+的运行和开发环境。在实验的时候,我电脑的VisualC+6.0被卸载了,我又去网上下载安装了,在上机调试的过程中慢慢对C+有了一定的了解。第 二 次: 类的定义和对象的使用 实验实验

7、时间: 2015年 3 月 25 日 实验室: S311 实验题目: 1.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:(1)使用成员函数实现输入、输出;(2)使用构造函数和析构函数,构造函数中实现对数据的输入、析构函数中实现输出;(3)编写主函数,定义对象,完成相应功能。2.定义日期类Date。要求:(1)可以设置日期;(2)日期加一天操作;(3)输出函数,输出格式为“XXXX年XX月XX日”;(4)编写主函数,定义对象,完成相应功能。实验目的:1、 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性

8、和类的封装;2、 类对象的定义;3、 理解类的成员的访问控制的含义,共有、私有和保护成员的区别;4、 掌握构造函数和析构函数的含义与作用、定义和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。实验要求:1、 根据实验要求写出相应的程序、调试程序;2、 给出程序结果;3、 真正理解实验内容,学到相应的知识。实验主要步骤:1.#include <iostream> #include <string> using namespace std; class student public: student() student(char *id

9、,char *name,int age) strcpy(stuId,id); strcpy(stuName,name); stuAge = age; void display() cout<<"学号:"<<stuId<<"姓名:"<<stuName<<"年龄:"<<stuAge<<endl; private: char stuId10; char stuName20; int stuAge; ; int main() student st("

10、001","刘阳",15); st.display(); return 0; 2. # include <iostream># include <iomanip>using namespace std;class Dateprivate:int year,month,day;public:void set(int y,int m,int d);bool isLeapYear() return (year%4=0&&year%100!=0)|(year%400=0);friend Date & operator+(Da

11、te & a);void print();void Date:set(int y,int m,int d) if(!(m<1|m>12) month=m; if(m=12|m=10|m=8|m=7|m=5|m=3|m=1) if(!(d<1|d>31) day=d; else if(!(d<1|d>30) day=d; else exit(1);else exit(1);year=y; void Date:print() cout<<year<<"年"<<month<<"月

12、"<<day<<"日"<<endl; Date & operator+(Date & a) bool mend=0,yend=0; switch(a.month) case 12: yend=a.day=31; break; case 10: case 8: case 3: case 1: mend=a.day=31; break; case 2: mend=a.day=28+a.isLeapYear(); break; case 4: case 6: case 9: case 11: mend=a.day=30

13、; break;yend?(a.day=1,a.month=1,a.year+):(mend?a.day=1,a.month+:a.day+);return a; int main() Date d1;d1.set(2013,4,20);d1.print();+d1;d1.print();实验结果:实验截图1:实验截图2:心得体会:对实验的程序代码不是很懂,就翻阅了书籍和查找了百度,实验过程中,发现自己对C+的知识不是特别敏感,后来找来课本开始温习一遍,真发现学习是一个要瞻前顾后,循序渐进的过程。还有很多知识需要自己去认真学习,通过实验也加深了对知识的了解和实际的运用,我相信以后的实验过程一定

14、会事半功倍的。第 三 次:多文件结构及静态成员和对象数组的使用 实验实验时间: 2015年4月 1 日 实验室: S311 实验题目:1、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。要求:(1)将main()函数放在一个.cpp文件中;(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;(3)将函数原型说明放在一个头文件中;(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。实验目的:1、掌握自定义头文件的方法;2、学会建立和调试多文件程序;3、了解静态成员的使用;4、掌握对象数组的使用。实验要求:1、 学会自定义头文

15、件的方法。2、 调试程序并修改相应错误的地方。3、 给出相应结果。实验主要步骤:一、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。要求:(1) 将main()函数放在一个.cpp文件中;(2) 将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;(3) 将函数原型说明放在一个头文件中;(4) 建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。实验结果:(1)函数原型说明:int fn(int n);int cnr(int n,int r);(2)主函数声明:void main();(3)函数实现:#include"函数原

16、型.h"int fn(int n)int s;for(s=1;n>=1;n-)s*=n;return s;int cnr(int n,int r)int s;for(s=1;n>r;n-) s*=n;return s;(4)主函数实现:#include"函数原型.h"#include"主函数声明.h"#include<iostream>using namespace std;void main()cout<<"从8个不同的数中取出3个数的所有选择种数的算法如下:"<<endl;

17、cout<<"fn(3)="<<fn(3)<<endl;cout<<"cnr(8,3)="<<cnr(8,3)<<endl;cout<<"种数="<<"cnr(8,3)/fn(3)="<<cnr(8,3)/fn(3)<<endl;(5)实验截图:心得体会:实验开始时,真的不知道该如何下手,感觉大脑是空白的,后来通过重新看书和查阅资料,总算有了一点起色。最大的问题就是头文件,源文件,cpp执行,建立

18、这几个文件,把程序的相关部分放在相应文件中还不熟练。在实验的过程中,我还发现细心也比较重要,细小的问题就不会被放掉,C+试验的魅力相信在以后的实验过程我会更加有所体会。第 四 次: 类的继承和派生 实验实验时间: 2015年 4 月 15 日 实验室: S311 实验题目: 1、编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;(3)编写主函数,求球、圆柱、圆锥的表面积和体积2、编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓名、班级和

19、成绩,教师数据有编号、姓名、职称和部门。要求:(1)将编号、姓名输入和显示设计成一个类person;(2)设计类person的派生类:学生类student和教师类teacher;(3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现文件中(*.cpp):person.h,person.cpp,student.h,student.cpp,teacher.h,teacher.cpp;(4)编写一个主文件(SY4_2.cpp),在该文件中分别定义student、teacher的对象,完成相应功能。实验目的:1、 理解继承的含义,掌握派生类的定义方法和实现;2、 理解公有继承下基类成员

20、对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3、 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;4、 条件编译的运用。多文件结构的进一步使用。实验要求:1、 根据实验指导书给出的题目写出相应的程序代码2、 掌握好所涉及的相关内容实验主要步骤:1、# include<iostream>#include<cmath>using namespace std;const float PI=3.14f;/几何类class Geometrypublic:void getR(float r)this

21、->r=r;protected:float r;/球类class Qiu:public Geometrypublic:float getArea(float r)getR(r);s=4*PI*r*r;return s;float getVolume(float r)getR(r);v=(4*PI*r*r*r)/3;return v;private:float s,v;/柱类class Zhu:public Geometrypublic:float getArea(float r,float h)getR(r);this->h=h;s=2*PI*r*h+2*PI*r*r;return

22、 s;float getVolume(float r,float h)getR(r);this->h=h;v=PI*r*r*h;return v;private:float s,v,h;/锥类class Zhui:public Geometrypublic:float getArea(float r,float h)getR(r);float l=sqrt(h*h+r*r);s=PI*r*l+PI*r*r;return s;float getVolume(float r,float h)getR(r);this->h=h;v=(PI*r*r*h)/3;return v;privat

23、e:float s,v,h;void main()Qiu a;Zhu b;Zhui c;float s1,s2,s3;float v1,v2,v3;s1=a.getArea(3);v1=a.getVolume(3);s2=b.getArea(3,2);v2=b.getVolume(3,2);s3=c.getArea(3,2);v3=c.getVolume(3,2);cout<<"球类:"<<s1<<","<<v1<<endl;cout<<"柱类:"<<

24、s2<<","<<v2<<endl;cout<<"锥类:"<<s3<<","<<v3<<endl;2、#include<iostream>#include<string>using namespace std;class personpublic:void print()cout<<"输入编号:"cin>>number;cout<<"输入姓名:&quo

25、t;cin>>name;void show()cout<<"编号:"<<number<<endl;cout<<"姓名:"<<name<<endl;protected:int number;string name;class student:virtual public personpublic:void print()person:print();cout<<"输入班号:"cin>>NO;cout<<"输入

26、成绩:"cin>>score;void show()person:show();cout<<"班号:"<<NO<<endl;cout<<"成绩:"<<score<<endl;protected:int NO;float score;class teacher:virtual public personpublic:void print()person:print();cout<<"输入职称:"cin>>title;co

27、ut<<"输入部门:"cin>>dept; void show()person:show();cout<<"职称:"<<title<<endl;cout<<"部门:"<<dept<<endl;protected:string title,dept;int main()student stu1,stu2;teacher teac1,teac2;cout<<"请根据提示输入学生信息"<<endl;st

28、u1.print();cout<<"学生信息如下"<<endl;stu1.show();cout<<endl;cout<<"请根据提示输入老师信息"<<endl;teac1.print();cout<<"老师信息如下"<<endl;teac1.show();cout<<endl;return 0;实验结果:实验截图1:实验截图2:心得体会:在C+的理论课上,就觉得这部分的内容比较难,掌握得并不好,本来想放弃不做这个实验的,可后来老师要求这个

29、实验必须做,所以只好硬着头皮开始,翻开课本重新阅读,又在网上查阅了一些相关资料,发现好像并不是太难,还是可以理解的,虽然在实验的过程中遇到了一些困难,但是最后都圆满解决了,突然发觉每次实验其实就是一次重新发现问题以及解决问题的过程,既然都知道不会,还不去解决,那是可悲的,这次实验着实让我受益匪浅。第 5 次: 多继承 实验实验时间: 2015 年 4 月 29 日 实验室: S311 实验题目:1、输入以下程序,分析运行结果。#include <iostream> using namespace std;class B1public:B1(int i)b1 = i;cout<

30、<"构造函数 B1."<<b1<<endl; void print() cout<<b1<<endl; private:int b1;class B2public:B2(int i)b2 = i;cout<<"构造函数 B2."<<b2<<endl; void print() cout<<b2<<endl;private:int b2;class B3public:B3(int i)b3 = i;cout<<"构造函数

31、B3."<<b3<<endl; int getb3() return b3; private:int b3;class A : public B2, public B1public:A(int i, int j, int k, int l):B1(i), B2(j), bb(k)a = l;cout<<"构造函数 A."<<a<<endl; void print()B1:print();B2:print();cout<<a<<endl;private:int a;B3 bb;voi

32、d main()A aa(1, 2, 3, 4);aa.print(); 2、修改上面的4个类,添加析构函数,在析构函数中输出各私有数据成员的值。并分析结果。实验目的:1、理解多继承的概念2、多继承中构造与析构的应用实验要求:1、 输入题目给出的程序,分析运行的结果2、 修改所给出程序中的4个类,添加析构函数,在析构函数中输出各私有数据成员的值。并分析结果实验主要步骤:1、 建立一个源文件,将所给出的程序输入该文件中,调试程序,并修改相应的错误2、 在各个类中添加相应的析构函数,调试程序,修改相应的错误,分析结果实验结果:#include <iostream> using name

33、space std;class B1public:B1(int i)b1 = i;cout<<"构造函数 B1."<<b1<<endl; void print() cout<<b1<<endl; B1()cout<<"析构函数B1.b1="<<b1<<endl;private:int b1;class B2public:B2(int i)b2 = i;cout<<"构造函数 B2."<<b2<<endl;

34、 void print() cout<<b2<<endl;B2()cout<<"析构函数B2.b2="<<b2<<endl;private:int b2;class B3public:B3(int i) b3 = i;cout<<"构造函数 B3."<<b3<<endl; int getb3() return b3; B3()cout<<"析构函数B3.b3="<<b3<<endl;private:int

35、 b3;class A : public B2, public B1public:A(int i, int j, int k, int l):B1(i), B2(j), bb(k)a = l;cout<<"构造函数 A."<<a<<endl; void print()B1:print();B2:print();cout<<bb.getb3()<<endl;cout<<a<<endl;A()cout<<"析构函数A.a="<<a<<end

36、l;private:int a;B3 bb;void main()A aa(1, 2, 3, 4);aa.print();实验截图:心得体会:派生类构造函数的一般语法:派生类名(参数表):基类名1(基类1初始化参数表),····,积累名n(积累名n初始化参数表),成员对象名1(成员对象名1初始化参数表),···,成员对象名n(成员对象名n初始化参数表)其他操作。如果对基类初始化时,需要调用基类带有形参表的构造函数时,派生类就必须声明构造函数。派生类构造函数的构造顺序为:先基类(按定义顺序),再对象成员(按定义顺序),按派生类

37、构造。析构函数的析构顺序与构造函数的构造顺序相反第 六 次:运算符重载和友元 实验实验时间: 2015 年 5 月 13 日 实验室: S311 实验题目:1、设计一个类,用自己的成员函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。要求:(1)输出结果是最简分数(可以是带分数);(2)分母为1,只输出分子。2、用友元函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。实验目的:1、掌握运算符重载和友元的概念;2、掌握使用friend重载运算符的方法。实验要求:1、 按要求写出相应的程序;2、 调试程序并给出结果。3、 完成实验报告和上交程序。实验主要步骤:一

38、、设计一个类,用自己的成员函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。要求:1、输出结果是最简分数(可以是带分数);2、分母为1,只输出分子。源程序:#include<iostream>using namespace std;class Fenshu/定义一个Fenshu类public: Fenshu(int zi=0,int mu=1):fenzi(zi),fenmu(mu); void reduction(); void display(); Fenshu operator+(const Fenshu &F); /两个分数相加,结果要化简 Fen

39、shu operator-(const Fenshu &F); /两个分数相减,结果要化简 Fenshu operator*(const Fenshu &F); /两个分数相乘,结果要化简 Fenshu operator/(const Fenshu &F); /两个分数相除,结果要化简 private: int fenzi; /分子 int fenmu; /分母;void Fenshu:reduction() int m,n,r,small,max; m=abs(fenmu); /取绝对值 n=abs(fenzi); if(m<n) small=m; max=n;

40、 else small=n; max=m; while(r=max%small) / 求m,n的最大公约数 max=small; small=r; fenmu/=small; / 化简 fenzi/=small; if (fenmu<0) / 将分母转化为正数 fenmu=-fenmu; fenzi=-fenzi; /显示分数 void Fenshu:display() cout<<"("<<fenzi<<"/"<<fenmu<<")"<<endl; /分数

41、的加法Fenshu Fenshu:operator+(const Fenshu &F)Fenshu F1;F1.fenzi=fenzi*F.fenmu+fenmu*F.fenzi;F1.fenmu=fenmu*F.fenmu;F1.reduction();return F1;/分数减法Fenshu Fenshu:operator-(const Fenshu &F)Fenshu F1;F1.fenzi=fenzi*F.fenmu-fenmu*F.fenzi;F1.fenmu=fenmu*F.fenmu;F1.reduction();return F1;/ 分数相乘 Fenshu

42、Fenshu:operator*(const Fenshu &F) Fenshu F1;F1.fenzi=fenzi*F.fenzi;F1.fenmu=fenmu*F.fenmu;F1.reduction();return F1; / 分数相除 Fenshu Fenshu:operator/(const Fenshu &F) Fenshu F1;F1.fenzi=fenzi*F.fenmu;F1.fenmu=fenmu*F.fenzi;F1.reduction();return F1; /主函数 void main()Fenshu f1(8,9),f2(5,7);cout<

43、;<"f1="f1.display();cout<<"f2="f2.display();Fenshu f3=f1+f2;cout<<"f3=f1+f2="f3.display();Fenshu f4=f1-f2;cout<<"f4=f1-f2="f4.display();Fenshu f5=f1*f2;cout<<"f5=f1*f2"f5.display();Fenshu f6=f1/f2;cout<<"f6=f1/f2

44、"f6.display();二、用友元函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。#include<iostream>using namespace std;class Fenshupublic: Fenshu(int zi=0,int mu=1):fenzi(zi),fenmu(mu); void reduction(); void display(); friend Fenshu operator+(const Fenshu &F1,const Fenshu &F2); /友元函数实现两个分数相加 friend Fenshu o

45、perator-(const Fenshu &F1,const Fenshu &F2); /友元函数实现两个分数相减 friend Fenshu operator*(const Fenshu &F1,const Fenshu &F2); /友元函数实现两个分数相乘 friend Fenshu operator/(const Fenshu &F1,const Fenshu &F2); /友元函数实现两个分数相除 private: int fenzi; /分子 int fenmu; /分母;void Fenshu:reduction() int m,

46、n,r,small,max; m=abs(fenmu); n=abs(fenzi); if(m<n) small=m; max=n; else small=n; max=m; while(r=max%small) / 求m,n的最大公约数 max=small; small=r; fenmu/=small; / 化简 fenzi/=small; if (fenmu<0) / 将分母转化为正数 fenmu=-fenmu; fenzi=-fenzi; /显示分数 void Fenshu:display() cout<<"("<<fenzi<

47、;<"/"<<fenmu<<")"<<endl; /分数的加法Fenshu Fenshu:operator+(const Fenshu &F1,const Fenshu &F2)Fenshu F3;F3.fenzi=F1.fenzi*F2.fenmu+F1.fenmu*F2.fenzi;F3.fenmu=F1.fenmu*F2.fenmu;F3.reduction();return F3;/分数减法Fenshu operator-(const Fenshu &F1,const Fenshu

48、 &F2)Fenshu F3;F3.fenzi=F1.fenzi*F2.fenmu-F1.fenmu*F2.fenzi;F3.fenmu=F1.fenmu*F2.fenmu;F3.reduction();return F3;/ 分数相乘 Fenshu operator*(const Fenshu &F1,const Fenshu &F2) Fenshu F3;F3.fenzi=F1.fenzi*F2.fenzi;F3.fenmu=F1.fenmu*F2.fenmu;F3.reduction();return F3; / 分数相除 Fenshu operator/(con

49、st Fenshu &F1,const Fenshu &F2) Fenshu F3;F3.fenzi=F1.fenzi*F2.fenmu;F3.fenmu=F1.fenmu*F2.fenzi;F3.reduction();return F3; void main()Fenshu f1(8,9),f2(5,7);cout<<"f1="f1.display();cout<<"f2="f2.display();Fenshu f3=f1+f2;cout<<"f3=f1+f2="f3.disp

50、lay();Fenshu f4=f1-f2;cout<<"f4=f1-f2="f4.display();Fenshu f5=f1*f2;cout<<"f5=f1*f2"f5.display();Fenshu f6=f1/f2;cout<<"f6=f1/f2"f6.display();实验结果:实验截图:心得体会:因为掌握的知识不够扎实,运用起来不是很熟练,通过仔细看书和百度查找,还是有了一点改变和收获。在做这个实验的时候,通过重新进入书本的学习,真正发现书本才是最重要的,老师经常说的查缺补漏,确实是

51、一种有效地学习办法,相信在以后的实验中,我会更加理解C+这门课程。第 七 次: 虚函数的使用 实验实验时间: 2015 年 6 月 3 日 实验室: S311 实验题目: 虚函数的使用实验目的:1、理解多态的概念。2、理解函数的静态联编和动态联编。3、掌握虚函数的定义。4、理解虚函数在类的继承层次中的作用、虚函数的引入对程序运行时的影响,掌握其使用。 实验要求:1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验报告和上交程序。实验要求:1、录入下面程序,并分析结果:#include <iostream> #include <co

52、mplex> using namespace std; class Base public: Base() cout<<"Base-ctor"<<endl; Base() cout<<"Base-dtor"<<endl; virtual void f(int)cout<<"Base:f(int)"<<endl; virtual void f(double)cout<<"Base:f(double)"<<endl;

53、virtual void g(int i=10)cout<<"Base:g()"<<i<<endl; ; class Derived : public Base public: Derived() cout<<"Derived-ctor" <<endl; Derived()cout<<"Derived-dtor"<<endl;void f(complex<double>) cout<<"Derived:f(comple

54、x)"<<endl;void g(int i=20)cout<<"Derived:g()"<<i<<endl; int main() cout<<sizeof(Base)<<endl; cout<<sizeof(Derived)<<endl; Base b; Derived d; Base *pb=new Derived; b.f(1.0); d.f(1.0); pb->f(1.0); b.g(); d.g(); pb->g(); delete pb; re

55、turn 0; 2、录入下面程序,分析运行结果:#include <iostream> using namespace std; class Base public: Base():data(count) cout<<"Base-ctor"<<endl;+count;Base()cout<<"Base-dtor"<<endl;-count; static int count; int data; ;int Base:count; class Derived : public Basepublic:Derived():data(count),data1(data)cout<<"Derived-ctor"<<endl;+count;Derived()cout<<"Derived-dtor"<<endl;-count;static int count;int data1;int data;int Derived:count=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论