如何用 2 个对象过度引导运算符
How to overlead operator with 2 object in
我学习考试,我在运算符过度引导的情况下上课。我知道如何过度引导运营商,但我有操作员过度引导 += 和 -= 的问题:我希望第二辆公交车的乘客尽可能多地换成第一班车。
class bus
{
private:
const int howSeat;
int howTake;
public:
bus(int s=51, int z=0);
int Free();
Passenger();
bus &operator+=(bus k);
bus & operator-=(bus k);
};
bus &bus::operator+=(bus k)
{
howTaken+=k.howTaken;
return *this;
}
int bus::Passanger()
{
return howTaken;
}
int bus::free()
{
return HowSeat-HowTaken;
}
bus::bus(int s, int z):howSeat(s)
{
howTaken=z;
if(howTaken<0 || howTaken>howSeat)
{
howTaken=0;
}
}
int main()
{
cout << "Hello world!" << endl;
return 0;
}
在您的情况下,您不需要在重载函数中返回某些内容,它非常适合 void。为了使你想要的东西成为可能,你需要使用'&'(例如:funstion( type &variable((,这意味着你获取变量的地址,所以更改也将在原始变量中进行。您可以在此示例中看到它:
#include <iostream>
using namespace std;
class bus
{
private:
const int howSeat;
int howTaken;
public:
bus(int s=51, int z=0);
int Passanger();
void operator+=(bus &k);
};
void bus::operator+=(bus &k) // now all changes made in k, will also be made in bus2
{
if ((k.howTaken + howTaken) > howSeat)
{
k.howTaken = k.howTaken + howTaken - howSeat;
howTaken = howSeat;
}
else
{
howTaken += k.howTaken;
k.howTaken = 0;
}
}
int bus::Passanger()
{
return howTaken;
}
bus::bus(int s, int z):howSeat(s)
{
howTaken = z;
if( howTaken < 0 || howTaken > howSeat)
{
howTaken=0;
}
}
int main()
{
bus bus1(20, 4);
bus bus2(20, 9);
cout << bus1.Passanger() << " " << bus2.Passanger() << endl;
bus1 += bus2;
cout << bus1.Passanger() << " " << bus2.Passanger();
return 0;
}
相关文章:
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 运算符重载 += 添加新对象
- 如何用 2 个对象过度引导运算符
- C++内联运算符重载中,请参阅当前对象
- 使用运算符"="在C++中用值初始化对象
- C++运算符重载做双 * 对象
- 如何在自定义对象的<<运算符中添加自定义前缀
- 尝试重载输出运算符时,我无法遍历对象向量
- 我重载了 << 和 = 运算符。为什么当我将一个对象分配给另一个对象并尝试打印它时,我会被打印出来?
- 在之后仍需要使用源对象时调用父移动分配运算符
- 错误:三元运算符无法在对象中正常工作"cout"
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 无法使用迭代器查找类对象。(二进制 '==': 'userInfo' 不定义此运算符)
- 重载加法运算符(使用函数向对象添加字符串)
- 临时对象上的运算符重载
- 如何使用运算符+重载函数正确返回对象?
- 如何分配适合容纳 T 类型对象的缓冲区(可能过度对齐、可能有运算符 new 等)
- 重载运算符 [] 用于从对象数组中给出特定索引