整理一下自己写的作业,供考试前复习用,哈哈

进入正题!!!

题目:

2.分析下面的程序,写出其运行时的输出结果

这里就不展示课本源代码,直接给出修改后的代码,错误部分代码已给出具体的注释

 #include<iostream>
//原题的#include<iostream.h>写法错误
#include<stdlib.h>
//用于解决闪屏的头文件
using namespace std;
 //原题缺少该行代码,用于输入cin和输出cout
class Date{
public:
Date(int,int,int);
Date(int,int);
Date(int);
Date(); void display();
private:
int month;
int day;
int year; }; Date::Date(int m,int d,int y):month(m),day(d),year(y){} Date::Date(int m,int d):month(m),day(d)
{year=;} Date::Date(int m):month(m)
{day=;year=;} Date::Date()
{month=;day=;year=;} void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
} int main()
{
Date d1(,,);
Date d2(,);
Date d3();
Date d4;
d1.display();
d2.display();
d3.display();
d4.display();
system("pause");
//解决闪屏的代码
return ;
}

运行结果:

3.如果将第2题中程序的第四行改为用默认参数,即

Date(int =1,int =1,int =2005);

分析程序有无问题。上机编译,分析出错信息,修改程序使之能通过编译。要求保留上面一行给出的构造函数,同时能输出与第2 题程序相同的输出结果。

解析:在第2题的代码上进行修改。

错误点:

修改错误,编译成功的代码:

 #include<iostream>
//原题的#include<iostream.h>写法错误
#include<stdlib.h>
//用于解决闪屏的头文件
using namespace std;
//原题缺少该行代码,用于输入cin和输出cout
class Date{
public:
Date(int x=,int y=,int z=);
Date(int,int);
Date(int);
Date(); void display();
private:
int month;
int day;
int year; }; Date::Date(int m,int d,int y):month(m),day(d),year(y){} Date::Date(int m,int d):month(m),day(d)
{year=;} Date::Date(int m):month(m)
{day=;year=;} Date::Date()
{month=;day=;year=;} void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
} int main()
{
Date d1(,,);
Date d2(,,);
Date d3(,,);
Date d4(,,);
d1.display();
d2.display();
d3.display();
d4.display();
system("pause");
//解决闪屏的代码
return ;
}

运行结果:

使用该错误修改方法,实际上就只有一个构造函数起作用,注释其它三个构造函数,输出结果不变,调用原理是多次调用同一个函数,而不是分别调用各自的构造函数。

源代码:

#include<iostream>
//原题的#include<iostream.h>写法错误
#include<stdlib.h>
//用于解决闪屏的头文件
using namespace std;
//原题缺少该行代码,用于输入cin和输出cout
class Date{
public:
Date(int x=,int y=,int z=);
void display();
private:
int month;
int day;
int year; }; Date::Date(int m,int d,int y):month(m),day(d),year(y){} void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
} int main()
{
Date d1(,,);
Date d2(,,);
Date d3(,,);
Date d4(,,);
d1.display();
d2.display();
d3.display();
d4.display();
system("pause");
//解决闪屏的代码
return ;
}

4.建立一个对象数组,内放5个学生的数据(学号,成绩),用指针指向数组首元素,输出1,3,5个学生的数据。

源代码及解析:

 #include<iostream>
#include<stdlib.h>
using namespace std;
class Student
{
public:
//学生数据的构造函数
Student(int sno,int grade):Sno(sno),Grade(grade){}
void display();
int Sno;
int Grade;
}; void Student::display()
{
cout<<Sno<<' '<<Grade<<endl;
} int main()
{
//五个学生的数据信息
Student stu[]={
Student(,),
Student(,),
Student(,),
Student(,),
Student(,),
};
//定义指针
void(Student::*p1)();
p1=&Student::display;
//调用函数
(stu[].*p1)();
(stu[].*p1)();
(stu[].*p1)();
system("pause");
return ; }

运行结果:

最新文章

  1. MongoDB常用操作--集合3
  2. Xcode如何查看内存中的数据
  3. Java条件语句之 switch
  4. 调用windows api 获取系统分辨率
  5. Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master
  6. [置顶] COcos2d-X 中文API
  7. python 3---if判断成绩练习
  8. 带以太网的MicroPython开发板:TPYBoardv201建立云加法器实例
  9. 在DirectShow的视频图像上叠加线条和文字
  10. 【Unity技巧】自定义消息框(弹出框)
  11. stylus导入时 报错These relative modules were not found
  12. Linux或UNIX系统配置检查
  13. x264阅读记录-3
  14. 函数, arguments对象, eval,静态成员和实例成员
  15. C++的OOP特性
  16. java 中xml转换为json对象
  17. 20145216史婧瑶《网络对抗》Web安全基础实践
  18. 分布式缓存技术memcached学习系列(二)——memcached基础命令
  19. bzoj 4069~4071 APIO2015
  20. python的N个小功能之正则匹配

热门文章

  1. ply2obj
  2. C++中的虚函数以及虚函数表
  3. 【C++札记】拷贝构造函数,浅拷贝和深拷贝
  4. Linux05 文件或目录的权限(ls、lsattr、chattr、chmod、chown、chgrp、file)
  5. 一个php将数据库的数据导出到excle表格中的小dome
  6. response letter
  7. go 学习笔记(4) package
  8. 同一个Tomcat部署多个springboot项目问题
  9. Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
  10. caffe层解读-softmax_loss