C++ 错误报告

lxdsljy001 2009-12-03 11:47:29
我用的是c-free 4.0

#include <iostream>
using namespace std;
#include <string>

class Person{
string name;
bool gender;
public:
Person(const string& n,bool g):name(n),gender(g){}
friend osteram& operator<<(const ostream& os,Person& m){
os << "我是" << m.gender?"男生":"女生" << m.name << endl;
return os;
}
};

int main()
{
Person p("小红",false),q("张三",true);
cout << p << endl;
cout << q << endl;
}

--------------------配置: mingw2.95 - CUI Debug, 编译器类型: MinGW (Old)--------------------

检查文件依赖性...
正在编译 E:\C++代码演练\operatir01.cpp...
[Error] E:\C++代码演练\operatir01.cpp:10: ANSI C++ forbids declaration `osteram' with no type
[Error] E:\C++代码演练\operatir01.cpp:10: `osteram' is neither function nor method; cannot be declared friend
[Error] E:\C++代码演练\operatir01.cpp:10: parse error before `&'
[Error] E:\C++代码演练\operatir01.cpp:14: syntax error before `&'
[Error] E:\C++代码演练\operatir01.cpp:16: parse error before `&'
[Error] E:\C++代码演练\operatir01.cpp:16: `operator &(...)' must have an argument of class or enumerated type
[Error] E:\C++代码演练\operatir01.cpp:16: `operator &(...)' must take either one or two arguments
[Error] E:\C++代码演练\operatir01.cpp:16: `s' undeclared (first use this function)
[Error] E:\C++代码演练\operatir01.cpp:16: (Each undeclared identifier is reported only once
[Error] E:\C++代码演练\operatir01.cpp:16: for each function it appears in.)
[Error] E:\C++代码演练\operatir01.cpp:20: no match for `_IO_ostream_withassign & << Person &'
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:77: candidates are: class ostream & ostream::operator <<(char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:78: class ostream & ostream::operator <<(unsigned char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:79: class ostream & ostream::operator <<(signed char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:80: class ostream & ostream::operator <<(const char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:82: class ostream & ostream::operator <<(const unsigned char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:84: class ostream & ostream::operator <<(const signed char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:85: class ostream & ostream::operator <<(const void *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:86: class ostream & ostream::operator <<(int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:87: class ostream & ostream::operator <<(unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:88: class ostream & ostream::operator <<(long int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:89: class ostream & ostream::operator <<(long unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:91: class ostream & ostream::operator <<(long long int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:92: class ostream & ostream::operator <<(long long unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:94: class ostream & ostream::operator <<(short int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:95: class ostream & ostream::operator <<(short unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:97: class ostream & ostream::operator <<(bool)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:99: class ostream & ostream::operator <<(double)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:100: class ostream & ostream::operator <<(float)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:104: class ostream & ostream::operator <<(long double)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:106: class ostream & ostream::operator <<(ostream & (*)(ostream &))
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:107: class ostream & ostream::operator <<(ios & (*)(ios &))
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:108: class ostream & ostream::operator <<(streambuf *)
[Error] E:\C++代码演练\operatir01.cpp:21: no match for `_IO_ostream_withassign & << Person &'
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:77: candidates are: class ostream & ostream::operator <<(char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:78: class ostream & ostream::operator <<(unsigned char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:79: class ostream & ostream::operator <<(signed char)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:80: class ostream & ostream::operator <<(const char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:82: class ostream & ostream::operator <<(const unsigned char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:84: class ostream & ostream::operator <<(const signed char *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:85: class ostream & ostream::operator <<(const void *)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:86: class ostream & ostream::operator <<(int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:87: class ostream & ostream::operator <<(unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:88: class ostream & ostream::operator <<(long int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:89: class ostream & ostream::operator <<(long unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:91: class ostream & ostream::operator <<(long long int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:92: class ostream & ostream::operator <<(long long unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:94: class ostream & ostream::operator <<(short int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:95: class ostream & ostream::operator <<(short unsigned int)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:97: class ostream & ostream::operator <<(bool)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:99: class ostream & ostream::operator <<(double)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:100: class ostream & ostream::operator <<(float)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:104: class ostream & ostream::operator <<(long double)
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:106: class ostream & ostream::operator <<(ostream & (*)(ostream &))
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:107: class ostream & ostream::operator <<(ios & (*)(ios &))
[Error] D:\c_free\C-FREE~1\mingw32\Include\G__~1\iostream.h:108: class ostream & ostream::operator <<(streambuf *)

构建中止 operatir01: 56 个错误, 0 个警告

什么意思???麻烦各位大虾看看!
是不是我没有这个ostream的类型啊??我加载了也没有 #include <ostream>



...全文
172 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
deng1243 2009-12-04
  • 打赏
  • 举报
回复

#include <iostream>
#include <sstream>
using namespace std;

class Person{
string name;
bool gender;
public:
Person(const string& n,bool g):name(n),gender(g){}
friend ostream& operator <<( ostream& os,const Person& m){
os << "我是" << ((m.gender)?"男生":"女生")<< m.name << endl; //?:运算要加上括号,因为<<优先级高于?:
return os ;
}
};

int main()
{
Person p("小红",false),q("张三",true);
cout << p << endl;
cout << q << endl;
return 0;
}

vc环境下编译通过
lxdsljy001 2009-12-04
  • 打赏
  • 举报
回复
不好意思,不是这个问题,是我发帖吧字写错,程序没错,我加了#include <ostream> 报的是
[Error] E:\C++代码演练\operatir01.cpp:4: ostream: No such file or directory
amossavez 2009-12-04
  • 打赏
  • 举报
回复
三楼的答案给你了!
macrojj 2009-12-04
  • 打赏
  • 举报
回复
friend ostream& operator <<( ostream& os,const Person& m){
os << "我是" << ((m.gender)?"男生":"女生")<< m.name << endl; //?:运算要加上括号,因为<<优先级高于?:
return os ;
}
;

mstlq 2009-12-04
  • 打赏
  • 举报
回复
#include <iostream>

friend ostream&

对热心帮助你的一楼,楼主最好谦虚一点^_^
arong1234 2009-12-03
  • 打赏
  • 举报
回复
osteram这个单词写错了,应该是ostream

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧