设计一个计数器类calculator,它只有一个用于计数的数据成员count。实现两个计数器的加减法乘除四则运算。(分别用成员函数和友元函数实现)
时间: 2023-06-05 08:47:12 浏览: 108
好的,下面是用中文回复:
设计一个计数器类calculator,它只有一个用于计数的数据成员count。实现两个计数器的加减法乘除四则运算。(分别用成员函数和友元函数实现)
首先,我们需要定义一个计数器类calculator,它只有一个数据成员count:
class calculator {
private:
int count;
public:
calculator(int c = 0) : count(c) {}
};
接下来,我们需要实现两个计数器的加减法乘除四则运算。我们可以分别用成员函数和友元函数来实现。
1. 成员函数实现
对于加减法乘除四则运算,我们可以分别定义四个成员函数add、sub、mul和div来实现:
class calculator {
private:
int count;
public:
calculator(int c = 0) : count(c) {}
calculator add(const calculator& c) const {
return calculator(count + c.count);
}
calculator sub(const calculator& c) const {
return calculator(count - c.count);
}
calculator mul(const calculator& c) const {
return calculator(count * c.count);
}
calculator div(const calculator& c) const {
return calculator(count / c.count);
}
};
这里需要注意的是,我们在每个成员函数中都返回了一个新的计数器对象,而没有改变原有的计数器对象。
2. 友元函数实现
对于友元函数实现,我们需要在类的定义中声明这些友元函数:
class calculator {
private:
int count;
public:
calculator(int c = 0) : count(c) {}
friend calculator add(const calculator& c1, const calculator& c2);
friend calculator sub(const calculator& c1, const calculator& c2);
friend calculator mul(const calculator& c1, const calculator& c2);
friend calculator div(const calculator& c1, const calculator& c2);
};
然后在类外实现这些友元函数:
calculator add(const calculator& c1, const calculator& c2) {
return calculator(c1.count + c2.count);
}
calculator sub(const calculator& c1, const calculator& c2) {
return calculator(c1.count - c2.count);
}
calculator mul(const calculator& c1, const calculator& c2) {
return calculator(c1.count * c2.count);
}
calculator div(const calculator& c1, const calculator& c2) {
return calculator(c1.count / c2.count);
}
这里需要注意的是,我们在每个友元函数中都返回了一个新的计数器对象,而没有改变原有的计数器对象。