栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++编程题 对象的创建

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++编程题 对象的创建

定义一个日期类 Date,它能表示年、月、日,并提供以下操作: 1) Date( );//默认构造函数,默认初始化日期为 2022 年 2 月 22 日 2) Date(int y, int m, int d);//构造函数 3) 使用初始化列表进行构造 4) void set(int y, int m, int d);//调整日期 5) void display( );//显示日期,显示格式为“2022 年 2 月 22 日” 定义一个时间类 Time,它能表示日期、时、分、秒,并提供以下操作: 1) Time( );//默认构造函数,默认初始化时间为 2022 年 2 月 22 日 2 点 2 分 2 秒 2) Time(Date date, int h, int m, int s);//构造函数 3) void increment( );//时间增加一秒 4) void display( );//显示时间值,显示格式为“2022 年 2 月 22 日 2 点 2 分 2 秒” 5) bool equal (Time &other_time);//比较是否与某个时间相等 6) bool less_than (Time &other_time);//比较是否早于某个时间 题目侧重考察类和对象的创建 第二题的56有点麻烦,不写了,开摆
#include
using namespace std;
class Date
{
public:
	Date();
	Date(int,int,int);
	~Date();
	void set(int y, int m, int d);//调整日期
	void display();//显示日期

private:
	int year_;
	int month_;
	int day_;
};
Date::Date(int year , int month , int day )
{
	year_ = year;
	month_ = month;
	day_ = day;
	cout << "构造函数初始化成功n";
}
Date::Date()
{
	year_ = 2022;
	month_ = 2;
	day_ = 2;
	cout << "默认构造函数初始化n";
}
void Date::set(int y, int m, int d)
{
	year_ = y;
	day_ = d;
	month_ = m;
}
Date::~Date()
{
	cout << "nBye ! ";
}
void Date::display()
{
	cout << year_ << "年" << month_ << "月" << day_ << "日" << endl;
}

class Time
{
public:
	Time();
	Time(int h,int m,int s);
	void increment();//时间增加一秒
	void display();//显示时间值,显示格式为“2022 年 2 月 22 日 2 点 2 分 2 秒"
	bool equal(Time& other_time);//比较是否与某个时间相等
	bool less_than(Time& other_time);//比较是否早于某个时间
	~Time();

private:
	Date date0;
	int hour0;
	int minute0;
	int second0;
};
Time::Time()
{
	hour0 = 2;
	second0 = 2;
	minute0 = 2;
	//Date();
	cout << "默认构造函数初始化n";
}
Time::~Time()
{
	cout << "nend of time !";
}
Time::Time(int h, int m, int s)
{
	hour0 = h;
	minute0 = m;
	second0 = s;
	cout << "构造函数初始化n";
}
void Time::increment()
{
	second0++;
	cout << "时间增加一秒n";
}
void Time::display()
{
	date0.display();
	cout << hour0 << "点" << minute0 << "分" << second0 << "秒" << endl;
}
bool Time::equal(Time &other_time)
{
	cout << "我不想写了n";
	return 1;
}
bool Time::less_than(Time& other_time)
{
	cout << "不写了n";
	return 1;
}
int main()
{
	Date date0;//初始化列表默认构造函数
	date0.display();
	Date date1(2021, 10, 7);//调用构造函数
	date1.display();
	date1.set(2022, 7, 18);//set函数
	date1.display();

	Time time;
	time.display();
	time.increment();
	time.display();
	Time time2(12,5,2);
	time2.display();
	return 0;
}

默认构造函数一般不接受参数,如果有参数必须提供默认值

若默认构造函数含参且与构造函数含参相同时可能会报错

题目中要求列表化构造意义不明,若列表化默认构造函数会造成与构造函数参数相同的后果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号