但是类成员里面的赋值或者变值是跟结构体不同的,无需使用上面说的 方法,首先,类里面可能有很多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;这个函数是用了引用的,如果除去&也是没有关系的,不过要改变两个地方就是定义和类里面的声明,都要除去&。
可以试试!