【C++】类和对象编程练习(传引用)

1.试写出Time类的类声明及成员函数的实现。要求:在Time类中包含3个数据分量,即时(hour)、分(minute)和秒(second)。在类的成员函数中应包括存(用set开头)、取(用get开头)各个数据分量和完整时间的操作;按上下午各12小时或按24小时打印时间的函数;有默认值的构造函数等。默认值以0时0分0秒为准。

自己写的代码(现在有问题)

#include 

using namespace std;
class Time
{
private:
    int hour,minute,second;
public:
    int set(int x,int y,int z);
    int get(int &x1,int &y1,int &z1);
    void print();
    Time();
};
Time::Time():hour(0),minute(0),second(0)
{
    cout<<"设置默认设置"<

报错:

【C++】类和对象编程练习(传引用)_第1张图片

看来应该是指针和地址那一块我还是不清楚。去再改改看看。

这样改,编译是没错了,但是输出结果有问题。(我把类中get函数的参数类型设置为指针类型,下面调用函数的时候,穿引用时,声明普通的整型变量,然后调用的时候函数里的参数取地址传进去)

#include 

using namespace std;
class Time
{
private:
    int hour,minute,second;
public:
    int set(int x,int y,int z);
    int get(int *x1,int *y1,int *z1);
    void print();
    Time();
};
Time::Time():hour(0),minute(0),second(0)
{
    cout<<"设置默认设置"<

输出结果有问题:

【C++】类和对象编程练习(传引用)_第2张图片

去调试下,怀疑是不是值没有传进去。

int main()
{
    Time t;
    t.print();
    t.set(12,5,30);
    t.print();
    int x,y,z;
    t.get(&x,&y,&z);
     cout<<"Time is :"<

打印结果:

【C++】类和对象编程练习(传引用)_第3张图片

定位到应该是set函数和get函数都出现问题。

set函数:

刚刚这个部位写反了。

get函数:

这个也是写反了。

刚刚写的时候get ,set混乱了(也许以后自己可以在函数旁边写上功能,提醒一下自己)

最后附上运行好的代码:

#include 
#include
using namespace std;
class Time
{
private:
    int hour,minute,second;
public:
    int set(int x,int y,int z);
    int get(int *x1,int *y1,int *z1);
    void print();
    Time();
};
Time::Time():hour(0),minute(0),second(0)
{
    cout<<"设置默认设置"<

运行成功的截图:

【C++】类和对象编程练习(传引用)_第4张图片

加了个关于不足位补零的头文件和函数:

头文件:#include

函数用法:例:cout<

 

 

 

========================================我是分割线================================================

 

你可能感兴趣的:(c++)