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的主要内容,如果未能解决你的问题,请参考以下文章

C++试题精选----类的封装和继承----NO.3

C++试题精选----类的封装和继承----NO.1

C++试题精选----类的封装和继承----NO.5

面向对象概述测试题

python类的继承和多态

C++的三大特性封装继承和多态