定义一个时间类,类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和Print_Time),编写程序完成下列要求:
(1) SetTime根据传递的3个参数为对象设置时间;Print_Time负责将对象表示的时间输出。定义一个时间类对象,设置时间为9点20分30秒并显示该时间。
(2) 使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。
(3) 重载时间类的构造函数(不带参数),使得小时、分、秒均为0。
(4) 在时间类的析构函数中输出“Good bye!”。
(5) 定义拷贝构造函数并使用。在时间类中定义一个静态数据成员,记录当前的年份2017年。
#include <iostream>
using namespace std;
class Time
{
private:
int Hour;
int Minute;
int Second;
public:
void SetTime(int h, int m, int s)
{
Hour = h;
Minute = m;
Second = s;
return;
}
void Print_Time()
{
cout << Hour <<"点" << Minute << "分" << Second << "秒" <<endl;
}
};
int main()
{
Time t;
t.SetTime(9, 20, 30);
t.Print_Time();
return 0;
}
#include <iostream>
using namespace std;
class Time
{
private:
int Hour;
int Minute;
int Second;
public:
Time(int h, int m, int s)
: Hour(h), Minute(m), Second(s)
{ }
void SetTime(int h, int m, int s)
{
Hour = h;
Minute = m;
Second = s;
return;
}
void Print_Time()
{
cout << Hour <<"点" << Minute << "分" << Second << "秒" <<endl;
}
};
int main()
{
Time t(10,40,50);
t.Print_Time();
return 0;
}
#include <iostream>
using namespace std;
class Time
{
private:
int Hour;
int Minute;
int Second;
public:
Time(int h, int m, int s)
: Hour(h), Minute(m), Second(s)
{ }
Time()
: Hour(0), Minute(0), Second(0)
{ }
void SetTime(int h, int m, int s)
{
Hour = h;
Minute = m;
Second = s;
return;
}
void Print_Time()
{
cout << Hour <<"点" << Minute << "分" << Second << "秒" <<endl;
}
~Time()
{
cout << "Good bye!";
}
};
int main()
{
Time t;
t.Print_Time();
return 0;
}
#include <iostream>
using namespace std;
class Time
{
private:
int Hour;
int Minute;
int Second;
static int year;
public:
Time(int h, int m, int s)
: Hour(h), Minute(m), Second(s)
{ }
Time()
: Hour(0), Minute(0), Second(0)
{ }
Time(Time &t)
: Hour(t.Hour), Minute(t.Minute), Second(t.Second)
{ }
void SetTime(int h, int m, int s)
{
Hour = h;
Minute = m;
Second = s;
return;
}
void Print_Time()
{
cout << Hour <<"点" << Minute << "分" << Second << "秒" <<endl;
}
~Time()
{
cout << "Good bye!";
}
};
int Time::year = 2017;
int main()
{
Time t(10,40,50);
Time t1(t);
t1.Print_Time();
return 0;
}
在程序框架中注释语句下面补充代码,完成以下要求:
(1)定义汽车类的构造函数,分别对类的数据成员进行初始化并输出"Calling Car constructor, set carname and seats!"。
(2)定义构造函数的重载,要求此构造函数带有默认参数值,分别对类的数据成员进行初始化并输出"Calling Car constructor, set carname!"。
(3)定义析构函数要求必须包含此行代码cout<<“Car destructor,car name:”<<m_pCarName << endl;。
(4)定义拷贝构造函数要求必须包含此行代码cout<<“Car destructor,car name:”<<m_pCarName << endl;。
(5)以不同方式创建Car的对象,要求自动调用默认参数的构造函数;自动调用带有一个参数的构造函数;自动调用带两个参数的构造函数,自动调用析构函数和拷贝构造函数。
#include <iostream>
using namespace std;
class Car
{
public:
// 定义构造函数,并通过初始化列表对数据成员进行初始化,请补充相关代码
Car()
:m_strCarName("mycar"), m_nSeats(0)
{
cout << "Calling Car constructor, set camame and seats!" << endl;
}
//定义带有默认参数值的构造函数,请补充相关代码
Car(string s,int n = 6)
:m_strCarName(s), m_nSeats(n)
{
cout << "Calling Car constructor, set carname!" << endl;
}
//拷贝构造函数
Car(const Car &c)
{
this->m_nSeats = c.m_nSeats;
this->m_strCarName = c.m_strCarName;
cout<<"Car destructor,car name:"<<m_strCarName << endl;
}
~Car()
{
cout<<"Car destructor,car name:"<<m_strCarName << endl;
}
void disp_memmsg()
{
cout<<"carname:"<<m_strCarName <<","<<"seats="<< m_nSeats << endl;
}
private:
string m_strCarName;
int m_nSeats;
};
int main()
{
// 以不同方式创建Car的对象
//Car mycar; // 自动调用默认参数的构造函数
Car mycar;
Car tomcar("tom's car"); //自动调用带有一个参数的构造函数,默认值被取代
Car yourcar("your new car", 4); // 自动调用带两个参数的构造函数
Car copy(yourcar);
mycar.disp_memmsg();
tomcar.disp_memmsg();
yourcar.disp_memmsg();
copy.disp_memmsg();
return 0;
}