C++ クラスの実習課題で少し問題があります。
基本的には、「cout << w3 << endl;」を取得しようとしています。プログラムを実行すると、コンソールに「16」と表示されます。ostream オーバーロード操作を使用する必要があることがわかりましたが、教授がそれについて話したことがないため、どこに配置すればよいか、またはどのように使用するかがわかりません。
残念ながら、「cout << w3.num」ではなく、「cout << w3」という形式を使用する必要があります。後者の方がはるかに迅速かつ簡単であることはわかっていますが、割り当てでは前者の方法で入力する必要があるため、それは私の決定ではありません。
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;
}
重量.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
重量.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: ostream 操作をオーバーロードして、main.cpp の「cout << w3」行を機能させるにはどうすればよいですか?
前もって感謝します!