一、设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个带参数);析构函数;void setValue(int m, string str)给age和name赋值;有一个void类型的纯虚函数display()。
设计一个学生类student,公有继承类people,有私有成员:studentID(学号,整型),行为成员:两个构造函数(一个默认,另一个带参数);析构函数;void setID(int m)给studentID赋值;display()函数输出学生的姓名,年龄,学号。
设计一个教师类teacher,公有继承类people,有私有成员:teacherID(工号,整型),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setID(int m)给teacherID赋值; display()函数输出教师的姓名,年龄,工号。
在main函数定义学生对象和教师对象,给对象初始化赋值或调用setValue()和setID()赋值,并输出学生和老师的信息。

#include<iostream>
using namespace std;
/*设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),
行为成员:两个构造函数(一个默认,另一个带参数);
析构函数;
void setValue(int m, string str)给age和name赋值;
有一个void类型的纯虚函数display()。
设计一个学生类student,公有继承类people,
有私有成员:studentID(学号,整型),
行为成员:两个构造函数(一个默认,另一个带参数);
析构函数;void setID(int m)给studentID赋值;display()函数输出学生的姓名,年龄,学号。
设计一个教师类teacher,公有继承类people,
有私有成员:teacherID(工号,整型),
行为成员:两个构造函数(一个默认,另一个有参数);
默认析构函数;void setID(int m)给teacherID赋值;
display()函数输出教师的姓名,年龄,工号。
在main函数定义学生对象和教师对象,
给对象初始化赋值或调用setValue()和setID()赋值,并输出学生和老师的信息。
*/ //定义类
class People{
protected:
int age;//age(年龄,整型)
string name;//name(姓名,string)
public:
People(){};//默认构造函数
People(int a,string n){//有参数的构造函数
age = a;
name = n;
}
~ People(){};//析构函数
void setValue(int m,string str){
age = m;
name = str;
}
virtual void display() const = 0;//纯虚函数
};
class Student : public People{//Student类公有继承People类
private:
int studentID;//studentID(学号,整型)
public:
Student(){};//默认构造
Student(int age,string name,int studentID):People(age,name){//含参构造
this->studentID = studentID;
}
~Student(){};//析构
void setID(int m){//给studentID赋值
this->studentID = m;
}
void display() const{//覆盖基类的虚函数,输出学生的姓名、年龄、学号
cout<<name<<","<<age<<","<<studentID<<endl;
}
};
class Teacher : public People{//Teacher类公有继承People类
private:
int teacherID;//teacherID(工号,整型)
public:
Teacher(){};//默认构造
Teacher(int age,string name,int teacherID):People(age,name){//含参构造
this->teacherID = teacherID;
}
~Teacher(){};//析构函数
void setID(int m){//给teacherID赋值
this->teacherID = m;
}
void display() const {//输出教师的姓名、年龄、工号
cout<<name<<","<<age<<","<<teacherID<<endl;
}
}; void fun(People *ptr){//定义抽象类的指针和引用
ptr->display();
} int main(){
//定义对象
People *people;
Student student;
Teacher teacher;
int age;
string name;
int id;
/*这里默认Student类和Teacher类的年龄、姓名相同*/
cout<<"请输入年龄、姓名"<<endl;
cin>>age>>name;
people = &student;
people->setValue(age,name);
people = &teacher;
people->setValue(age,name);
cout<<"请输入学生学号"<<endl;
cin>>id;
student.setID(id);
cout<<"请输入教师工号"<<endl;
cin>>id;
teacher.setID(id);
fun(&student);
fun(&teacher);
return 0;
}

二、使用函数模板,实现求两个数,三个数的最小值。主函数中针对不同类型数据进行测试(实现显示实例化和隐式实例化)。

#include<iostream>
using namespace std;
/*使用函数模板,实现求两个数,三个数的最小值。
主函数中针对不同类型数据进行测试(实现显示实例化和隐式实例化)。 */ //函数模板
template<typename T>
T GetMin(T Array[],int Length){
T temp = Array[0];
for(int i = 0;i<Length;i++){
if(temp>Array[i]){
temp = Array[i];
}
}
return temp;
} int main(){
int intArray[] = {1,2,3};//int型数组测试
double doubleArray[] = {1.1,1.2,1.3};//double型数组测试
//计算长度
int intArrayLength,doubleArrayLength;
intArrayLength = sizeof(intArray)/sizeof(int);
doubleArrayLength = sizeof(doubleArray)/sizeof(double); cout<<"int型隐式实例化Min:"<<GetMin(intArray,intArrayLength)<<endl;//隐式
cout<<"int型显式实例化Min:"<<GetMin<int>(intArray,intArrayLength)<<endl;//显式
cout<<"double型隐式实例化Min:"<<GetMin(doubleArray,doubleArrayLength)<<endl;//隐式
cout<<"double型显式实例化Min:"<<GetMin<double>(doubleArray,doubleArrayLength)<<endl;//显式
return 0;
}

C++课后习题的更多相关文章

  1. 《python核心编》程课后习题——第三章

    核心编程课后习题——第三章 3-1 由于Python是动态的,解释性的语言,对象的类型和内存都是运行时确定的,所以无需再使用之前对变量名和变量类型进行申明 3-2原因同上,Python的类型检查是在运 ...

  2. web实验指导书和课后习题参考答案

    实验指导书 :http://course.baidu.com/view/daf55bd026fff705cc170add.html 课后习题参考答案:http://wenku.baidu.com/li ...

  3. 《Python核心编程》 第六章 序列 - 课后习题

    课后习题 6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:成员关系操作符(in.not in) import string ...

  4. 《Python核心编程》 第五章 数字 - 课后习题

    课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5- ...

  5. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  6. OpenCV学习笔记之课后习题练习3-5

    OpenCV学习笔记之课后习题练习2-5 练习使用感兴趣区域(ROI).创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组. 参考博文:www ...

  7. OpenCV学习笔记之课后习题练习2-5

    5.对练习4中的代码进行修改,参考例2-3,给程序加入滚动条,使得用户可以动态调节缩放比例,缩放比例的取值为2-8之间.可以跳过写入磁盘操作,但是必须将变换结果显示在窗口中. 参考博文:blog.cs ...

  8. OpenCV学习笔记之课后习题练习2-3

    3.使用例2-10中的视频捕捉和存储方法,结合例2-5中的doPyrDown()创建一个程序,使其从摄像机读入视频数据并将缩放变换后的彩色图像存入磁盘. 例2-10中所用的方法虽然能正常运行,但却不能 ...

  9. OpenCV学习笔记之课后习题练习3-4

    练习:创建一个大小为100*100的三通道RGB图像.将它的元素全部置0.使用指针算法以(20,5)与(40,20)为顶点绘制一个绿色平面. 参考博文:blog.csdn.net/qq_2077736 ...

  10. OpenCV学习笔记之课后习题练习3-3

    3.3 创建一个100*100的拥有三个通道的二维字节类型矩阵,将其元素全部置0.通过cvPtr2D函数将指针指向中间通道(绿色),以(20,5)和(40,20)为顶点间画一个绿色的长方形. cvPt ...

随机推荐

  1. Spring源码阅读-BeanFactory体系结构分析

    BeanFactory是Spring中非常重要的一个类,搞懂了它,你就知道了bean的初始化和摧毁过程,对于深入理解IOC有很大的帮助. BeanFactory体系结构 首先看一下使用IDEA生成的继 ...

  2. Build a ZenTao Server on Linux

    Download xampp for linux on Apache Friends, file name: xampp-linux-1.8.3-2-installer.run; Intallatio ...

  3. srt文件的时间轴平移处理

    有时srt字幕文件与视频文件的时间不完全吻合,有一个时间差,这就需要对srt文件的时间轴进行平移,具备这个功能的软件很多,比如:Subtitle Tool, subresync, sabbu, Sub ...

  4. LiteFlow 2.6.0版本发行注记,项目逻辑解耦的利器

    前言 自从LiteFlow 2.5.X版本发布依赖,陆续经历了10个小版本的迭代.社区群也稳固增长,每天都有很多小伙伴在问我问题. 但是我发现最多人问我的还是:什么时候能支持界面编排? 从LiteFL ...

  5. centos7.5 安装jdk环境

    最新下载地址 历史下载地址 [root@manage ~]# mkdir /application/ [root@manage ~]# tar -xf jdk-8u112-linux-x64.gz - ...

  6. 旧手机改造成web服务器并实现内网穿透

    前几天由于gitee的审核引擎一通乱杀,使得gitee pages停止提供服务,心生更换服务器或者其他pages托管的想法,看了看价格感人的云服务器以及空空的钱包,这时,脑子有个奇怪的想法飘过,自己搞 ...

  7. 腾讯云TDSQL MySQL版 - 开发指南 分布式事务

    由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务. TDSQL MySQL版 支持普通分布式事务协议和 XA 分布式事务协议.TDSQL MySQL版(内核5.7或以上 ...

  8. WPF 绘图 和动画

    wpf 的动画:https://www.cnblogs.com/TianFang/p/4050845.html

  9. C# 线程同步的多种方式

    实际应用中多个线程往往需要共享数据,因此必须使用同步技术,确保一次只有一个线程访问和改变共享数据.同步又分为进程内部线程的同步以及进程之间线程的同步. 进程内部线程同步: 1. lock : 使用比较 ...

  10. RibbitMQ 实战教程

    # RabbitMQ 实战教程 ## 1.MQ引言 ### 1.1 什么是MQ `MQ`(Message Quene) : 翻译为 `消息队列`,通过典型的 `生产者`和`消费者`模型,生产者不断向消 ...