Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19279278
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-30 20:56:48

以前一直以为类就是跟结构体一样的东西,只是复杂一点而已,结构体的赋值或者说改变他的值都要用返回或者指针或者说可以用引用的。

    但是类成员里面的赋值或者变值是跟结构体不同的,无需使用上面说的 方法,首先,类里面可能有很多private成员,不可能用一个return就完成的,也没有必要用指针和引用,当然了指针和引用是可以用的。

    这里给出书上的一些程序片断,没有必要全部给出:

Time::Time()
{
    hours = minutes = 0;
}

Time::Time(int h, int m )
{
    hours = h;
    minutes = m;
}

void Time::AddMin(int m)
{
    minutes += m;
    hours += minutes / 60;
    minutes %= 60;
}
void Time::AddHr(int h)
{
    hours += h;
}

void Time::Reset(int h, int m)
{
    hours = h;
    minutes = m;
}

Time Time::Sum(const Time & t) const
{
    Time sum;
    sum.minutes = minutes + t.minutes;
    sum.hours = hours + t.hours + sum.minutes / 60;
    sum.minutes %= 60;
    return sum;
}

void Time::Show() const
{
    std::cout << hours << \" hours, \" << minutes << \" minutes\";
}

类的定义为:

class Time
{
private:
    int hours;
    int minutes;
public:
    Time();
    Time(int h, int m = 0);
    void AddMin(int m);
    void AddHr(int h);
    void Reset(int h = 0, int m = 0);
    Time Sum(const Time & t) const;
    void Show() const;
};

记得类的定义跟结构体有一点是相同的,就是要在最后加一个“;”!

这个是一个输入给类时间,也就是输入小时和分钟,最后完成两个时间相加。

从Time( ),Time(int h, int m ),以及后面的add函数的定义可以看出,改变类里面的成员的数值是没有必要用指针和引用的,目的都可以达到,然而也可以使用引用,再看后面的

Time Sum(const Time & t) const;这个函数是用了引用的,如果除去&也是没有关系的,不过要改变两个地方就是定义和类里面的声明,都要除去&。

可以试试!

阅读(395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~