KiKi学习了面向对象技术,学会了通过封装属性(变量)和行为(函数)定义类,现在他要设计一个电子日历类TDate。
它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,要求:
(1)带有默认形参值的构造函数,默认值为0, 0, 0;(2)输出日期函数,用“日/月/年”格式输出日期;
(3)设置日期函数,从键盘输入年、月、日。
一行,三个整数,用空格分隔,分别表示年、月、日。
一行,用“日/月/年”格式输出日期。
2019 12 30
30/12/2019
#include <stdio.h>
#include <stdlib.h>
typedef struct TData {
int Year;
int Day;
int Month;
void (*show)(struct TData*);
void (*set)(struct TData*);
}TData;
void showData(TData* data) {
printf("%d/%d/%d", data->Day, data->Month, data->Year);
}
void setData(TData* data) {
scanf("%d %d %d", &(data->Year), &(data->Month), &(data->Day));
}
TData* creatTData() {
TData* data = (TData*)malloc(sizeof(TData));
data->Year = 0;
data->Month = 0;
data->Day = 0;
data->set = setData;
data->show = showData;
return data;
}
int main() {
TData* data = creatTData();
data->set(data);
data->show(data);
free(data);
return 0;
}