Я писал код и хотел перегрузить оператор ‹‹. Для этого я объявил оператор дружественной функцией, чтобы он имел доступ к некоторым приватным переменным, которые должны оставаться приватными! Но это возвращает мне много ошибок. Что доставляет мне больше всего проблем, так это то, что он не позволяет мне получить доступ к тем личным данным, которые мне нужны. Если я закомментирую оператор, программа компилируется просто отлично. И извините, потому что язык в коде немецкий.
Заголовок:
#pragma once
class fahrzeug
{
private:
int hg;
double tank;
double fst;
double dsv;
double ks;
public:
fahrzeug();
fahrzeug(const fahrzeug& brm);
friend ostream& operator<<(ostream& os, const fahrzeug& obj); // <------
~fahrzeug();
};
Цена за конверсию:
#include "fahrzeug.h"
#include <iostream>
using namespace std;
fahrzeug::fahrzeug()
{
hg = 180;
tank = 50;
fst = 45;
dsv = 9;
ks = 50000;
}
fahrzeug::fahrzeug(const fahrzeug& brm)
{
hg = brm.hg;
tank = brm.tank;
fst = brm.fst;
dsv = brm.dsv;
ks = brm.ks;
}
ostream& operator<<(ostream& os, const fahrzeug& brm) // <------ Operator
{
os << "Höchstgeschwindigkeit: " << brm.hg << "km/h." << endl;
os << "Volumen des Tanks: " << brm.tank << "L." << endl;
os << "Füllstand des Tanks: " << brm.fst << "L." << endl;
os << "Durchschnittlicher Spritverbrauch: " << brm.dsv << "L/(100km)" << endl;
os << "Kilometerstand des Fahrzeugs: " << brm.ks << "km." << endl;
return os;
}
fahrzeug::~fahrzeug()
{
}