我在爲我的C++類實驗室分配時遇到了一些麻煩。運算符超載:Ostream/Istream
基本上,我試圖獲得「cout < < w3 < < endl;」工作,所以當我運行該程序的控制檯說「16」。我發現我需要使用一個ostream重載操作,但我不知道該把它放在哪裏或如何使用它,因爲我的教授從來沒有談過它。
不幸的是,我必須使用格式「cout < < w3」而不是「cout < < w3.num」。我知道後者會更快,更容易,但這不是我的決定,因爲任務必須以前一種方式輸入。
main.cpp中:
#include <iostream>
#include "weight.h"
using namespace std;
int main() {
weight w1(6);
weight w2(10);
weight w3;
w3=w1+w2;
cout << w3 << endl;
}
weight.h:
#ifndef WEIGHT_H
#define WEIGHT_H
#include <iostream>
using namespace std;
class weight
{
public:
int num;
weight();
weight(int);
weight operator+(weight);
};
#endif WEIGHT_H
weight.cpp:
#include "weight.h"
#include <iostream>
weight::weight()
{
}
weight::weight(int x)
{
num = x;
}
weight weight::operator+(weight obj)
{
weight newWeight;
newWeight.num = num + obj.num;
return(newWeight);
}
TL; DR:我怎樣才能使「COUT < < main.cpp中的「w3」行通過重載ostream操作工作?
提前致謝!
工作就像一個魅力!不能夠感謝你:) – Muddy