C++试题精选----类的封装和继承----NO.2
Posted 敲代码的xiaolang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++试题精选----类的封装和继承----NO.2相关的知识,希望对你有一定的参考价值。
希望c++的入门者们闲暇之余,可以浏览思考,有什么问题欢迎留言或者私信。
类的封装和继承----NO.2
eg.Time类的框架定义如下。
class Time //声明Time类
{
public:
Time( int = 0, int = 0, int = 0 ); // 带默认参数的构造函数
// set functions
void setTime( int, int, int ); // 设置hour, minute, second
void setHour( int ); // 设置hour (确保数据在合理范围)
void setMinute( int ); // 设置minute (确保数据在合理范围)
void setSecond( int ); // 设置second (确保数据在合理范围)
// get functions
int getHour(); // 返回 hour
int getMinute(); // 返回 minute
int getSecond(); // 返回 second
void printUniversal(); // 按24小时格式输出时间:23:56:12
void printStandard(); // 按12小时格式输出时间:11:56:12 (PM) 或 9:23:55(AM)
private:
int hour; // 0 - 23 (24小时格式)
int minute; // 0 - 59
int second; // 0 - 59
}; // Time类定义结束
(1) 按照注释的要求完成所有成员函数的定义;
(2) 在主程序中定义Time类对象,通过对象指针或引用调用上述成员函数以测试其正确性。**
#include<iostream>
using namespace std;
class Time //声明Time类
{
public:
Time( int = 0, int = 0, int = 0 ); // 带默认参数的构造函数
// set functions
void setTime( int, int, int ); // 设置hour, minute, second
void setHour( int ); // 设置hour (确保数据在合理范围)
void setMinute( int ); // 设置minute (确保数据在合理范围)
void setSecond( int ); // 设置second (确保数据在合理范围)
// get functions
int getHour(); // 返回 hour
int getMinute(); // 返回 minute
int getSecond(); // 返回 second
void printUniversal(); // 按24小时格式输出时间:23:56:12
void printStandard(); // 按12小时格式输出时间:11:56:12 (PM) 或 9:23:55(AM)
private:
int hour; // 0 - 23 (24小时格式)
int minute; // 0 - 59
int second; // 0 - 59
};
Time::Time(int,int,int)
{
}
int Time::getHour()
{
return hour;
}
int Time::getMinute()
{
return minute;
}
int Time::getSecond()
{
return second;
}
void Time::setTime(int Hour,int Minute,int Second)
{
setHour(Hour);
setMinute(Minute);
setSecond(Second);
}
void Time::setHour(int Hour)
{
hour=Hour;
}
void Time::setMinute(int Minute)
{
minute=Minute;
}
void Time::setSecond(int Second)
{
second=Second;
}
void Time::printUniversal()
{
cout<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<endl;
}
void Time::printStandard()
{
if(hour<=12)
{
cout<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<"(AM)"<<endl;
}
else{
cout<<getHour()-12<<":"<<getMinute()<<":"<<getSecond()<<"(PM)"<<endl;
}
}
int main()
{
Time t1=(0,0,0),t2=(0,0,0);
t1.setTime(10,12,52);
t1.printStandard();
t1.printUniversal();
t2.setTime(15,2,2);
t2.printStandard();
t2.printUniversal();
return 0;
}
运行结果
有问题私聊博主或者在下面留言,如果有更好的解法也请留言,欢迎大家讨论,共同进步,一起学习。
“C++是面向对象编程,我也想面向对象编程。”
以上是关于C++试题精选----类的封装和继承----NO.2的主要内容,如果未能解决你的问题,请参考以下文章