当前位置:首页 > C++面向对象程序设计实验指导书谭浩强
}
x2 = max_def(2,3,4); d1 = max_def(2.1,5.6);
d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------① cout<<\cout<<\cout<<\
cout<<\② return 1;
问题一:上述程序的输出结果是什么? 答:
问题二:哪些情况可以参与函数的重载? 答:
问题三:①处调用的是哪个函数? 答:
问题四:②处的输出结果为什么是d2=12,而不是d2=12.3? 答:
2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
#include
int *p1 = new int; -----------------------------------------------------① int *p2 = new int(0); -----------------------------------------------------② char *p3 = new char[64]; -----------------------------------------------------③ return 1; }
问题一:①、②、③处动态申请内存分别代表什么不一样的意思? 答:
问题二:该程序存在什么隐患?改正该程序使隐患消除。 答:
3.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
#include
int temp = a; a = b; b = temp; }
void swap(int *a, int *b) {
int temp = *a; *a = *b;
*b = temp; }
int main() {
int i = 5; int j = 10;
cout<<\
swap(i,j); -----------------------------------------------------① cout<<\
swap(&i,&j); -----------------------------------------------------② cout<<\ return 1; }
问题一:上述程序的输出结果是什么? 答:
问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么? 答:
问题三:②处调用的是哪个重载函数? 答:
2.2.2 程序设计
1.使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。
2.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容赋值给b,b的内容赋值给c,c的内容赋值给a,要求采用引用的方式来实现。
2.3 思考题
1.自己设计一个程序,测试const的三种用法:指向常量的指针,常指针,指向常量的常指针。
2.编写一个函数,实现两个字符串变量的交换,要求参数用引用。
实验三 类和对象(一)
3.1 实验目的
1.类的定义; 2.类对象的使用;
3.类成员变量的定义和使用; 4.类成员函数的定义和使用; 5.理解类的作用域; 6.理解类的声明;
7.理解类中private和public权限的声明依据。
3.2 实验内容
1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
#include
void Set(int m, int d, int y ) { month = m ; day = d ; year = y ; }
int IsLeapYear() { return (year%4 == 0 && year0 != 0)||(year@0 == 0); } public:
void Print() { cout< int month; int day; int year; }; void main() { CDate a; -----------------------------------------------------① a.Set(10,15,2007) ; a.Print(); } 问题一:以上程序编译能通过吗,为什么,应该如何改正? 答: 问题二:类CDate中分别有哪些成员函数和成员变量,它们分别属于哪种访问权限? 答: 问题三:①处语句的意思是什么? 答: 2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include void Set(int m,int d,int y) -----------------------------------------------------a { ::month=m; -----------------------------------------------------① ::day=d; ::year=y; } class CDate { public: void Set(int m,int d,int y) -----------------------------------------------------b { ::Set(m,d,y); -----------------------------------------------------② } void Print() { cout< int month; //成员变量 int day; int year; }; void main() { CDate a; a.Set(10,15,2007) ; a.Print(); } 问题一:①处是在给成员变量赋值,还是在给全局变量赋值,如果去掉域作用符::,程序是否
共分享92篇相关文档