重载输出运算符时出现错误
Bunch of errors while overloading the output operator
我一直在写一段代码,希望重载<lt;操作人员为此,我将运算符声明为友元函数,这样它就可以访问一些应该保持私有的私有变量!但这让我又犯了很多错误。给我带来最大问题的是,它不允许我访问我需要的那些私人数据。如果我注释掉运算符,程序就可以编译了。很抱歉,因为代码中的语言是德语。
标题:
#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();
};
CPP:
#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()
{
}
您忘记在fahrzeug.h中使用#include <iostream>
。
添加
#include <iostream>
using std::ostream;
之后
#pragma once
相关文章:
- 显示错误输出的简单数组排序程序
- Dijkstra 中的错误输出
- 自定义runtime_error,如果我在 #what 中使用#c_str(),则错误输出始终为空
- 流字符串错误输出
- C++ 异常处理错误输出
- C ++中的错误输出,i = 65530,当我们打印i的值时,它给出-6状态65530
- SSE和iostream:浮点类型的错误输出
- C++将 popen 错误输出读取为字符串
- 部分透视/高斯消除 - 交换列而不是产生错误输出的行
- C++,向量:获得包含 0 的错误输出
- 数组函数错误输出
- CC1plus 错误:输出文件名指定两次
- 字符串错误输出
- 子斯特的错误输出
- 对大量c++错误输出完全一无所知.我认为这与预定义的函数和迭代器有关
- 简单程序的错误输出
- XCode调试器lldb中断,没有错误输出,但程序运行良好
- std::string::append(std::string)错误输出
- 查看大错误输出的顶行
- 使用结构的错误输出