实验2类与对象(一)

定义一个时间类,类中有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;



}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值