公有继承:Class B :public A
派生类中public成员与protected成员访问权限不变
私有继承:Class B :private A
派生类中public成员与protected成员访问均变成私有的
保护继承:ClassB :protected A
派生类中public成员变成protected成员,protected成员不变
基类的private成员在派生类中均不可直接访问
这个题主要想记录一下一些语法啥的
题目代码
#include<iostream>
#include<sstream>
using namespace std;
string itoa(int n)
{
stringstream int_string;
string s;
int_string << n;
int_string >> s;
return s;
}
//定义日期类
class Data
{
int Year, Month, Day;
public:
//对日期的初始化
Data(int y = 2000, int m = 1, int d = 1)
{
Year = y;
Month = m;
Day = d;
}
//设置日期
void Set_data(int y, int m, int d)
{
Year = y; Month = m; Day = d;
}
//日期按字符串存储
void Get_data(string& data_str)
{
data_str.append(itoa(Year));
data_str.append("/");
data_str.append(itoa(Month));
data_str.append("/");
data_str.append(itoa(Day));
}
};
//定义时间类
class Time
{
int Hour, Minute, Second;
public:
//对时间的初始化
Time(int h = 0, int m = 0, int s = 0)
{
Hour = h; Minute = m; Second = s;
}
//设置时间
void Set_time(int h, int m, int s)
{
Hour = h; Minute = m; Second = s;
}
//时间按字符串存储
void Get_time(string& time_str)
{
time_str.append(itoa(Hour));
time_str.append(":");
time_str.append(itoa(Minute));
time_str.append(":");
time_str.append(itoa(Second));
}
};
//定义派生类
class DataTime :public Data, public Time
{
public:
DataTime()
{ }
//设置日期与时间
void SetDataTime(int y, int m, int d, int h, int mi, int se)
{
Set_data(y, m, d);
Set_time(h, mi, se);
}
//按字符串存储
void GetDataTime(string& dt_str)
{
string data_str, time_str;
Get_data(data_str);
Get_time(time_str);
dt_str.append(data_str);
dt_str.append(" ");
dt_str.append(time_str);
}
};
int main()
{
DataTime DT;
string dt;
DT.GetDataTime(dt);
cout << dt << endl;
dt.clear();
DT.SetDataTime(2021, 4, 15, 22, 50, 30);
DT.GetDataTime(dt);
cout << dt;
}
运行结果