超载问题<<操作员
我正在尝试超载 <<我的货币类的运算符,但我收到此编译器错误:C2143:语法错误:缺少 ';'在 '&' 之前
在我的 .h 文件中,我有:
friend ostream &operator << (ostream &, const Currency&);
在我的Currency.cpp 文件中,我有:
ostream &operator << (ostream &stream, const Currency &obj){
stream<<"$"<<obj.dollars<<"."<<obj.cents;
return stream;
}
到目前为止,一切都工作正常,但一旦我将其放入,就会窒息:
我在顶部有以下内容我的 .h 文件:
#ifndef CURRENCY_H
#define CURRENCY_H
#include<iostream>
#include<string>
#include<ostream>
#include<sstream>
class Currency; //forward delcaration
//Function prototypes for overloaded stream operators
ostream &operator << (ostream &, const Currency &);
我不知道我做错了什么。帮助会很棒。谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ostream
在namespace std
中声明,并且您在它之前缺少std::
标识符:如果您想避免
std::< /code> 然后在头文件之后,您可以放置
using namespace
语句:编辑:
using namespace <>
在实际编程中不建议使用在文件顶部。我把这部分仅供参考。ostream
is declared innamespace std
and you are missingstd::
identifier before it:If you want to avoid
std::
then after header file you can putusing namespace
statement:Edit:
using namespace <>
is not recommended in real world programming at the file top. I have put that part just for FYI.