帮忙改错(新人,多谢大家帮助)

kandianshi 2008-10-10 05:46:06
//================================
//f0814.cpp
//静态成员函数
//================================
#include<iostream>
using namespace std;
//-------------------------------
class Student
{
static int number;
string name;
public:
void set(string str)
{
name = str;
++number;
}
static int printNumber()
{
cout<<number<<" total numbers\n";
}
void print()
{
cout<<name<<" -> strdents are "<<number<<" numbers\n";
}
};
//---------------------------------
int Student::number = 0; //静态数据成员在类外非配空间和初始化
//---------------------------------
void fn()
{
Student s1;
s1.set("Jenny");
Student s2;
s2.set("Randy");
s1.printNumber();
}
//------------------------------------
int main()
{
Student s;
s.set("Smith");
fn();
Student::printNumber();
}
//--------------------------------------


谁能给解释一下为什么我标红色的部分会报错,我用的vs2005编译器。这个语法好像是没问题的
...全文
55 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kandianshi 2008-10-10
  • 打赏
  • 举报
回复
多谢了,你让我知道了至少有问题要多去思考下是不是少了什么重要的文件。
还有几位朋友说的也很不错呵呵,不过5楼的兄弟回答最快了呵呵

[Quote=引用 5 楼 rollrock1987 的回复:]
问题很严重
一:使用了string 就必须有 #include <string>
二: static int printNumber()
{
cout < <number < <" total numbers\n";
//return 0;
}
你没有返回值

别的没有错 改下就行了


接分
[/Quote]
southbirdfly 2008-10-10
  • 打赏
  • 举报
回复
前面应该要加#include<string>...
还有main函数和 printNumber函数没有返回值....
我用的是VC6~
jia_xiaoxin 2008-10-10
  • 打赏
  • 举报
回复
没有包含头文件
#include <string>
没有返回值
OenAuth.Core 2008-10-10
  • 打赏
  • 举报
回复
你的那个地方没问题,少了个头文件,少了个返回,帮你改好了

#include <iostream>
#include <string>//少了头文件
using namespace std;
//-------------------------------
class Student
{
static int number;
string name;
public:
void set(string str)
{
name = str;
++number;
}
static int printNumber()
{
cout <<number <<" total numbers\n";
return number;//这个地方必须返回一个值
}
void print()
{
cout <<name <<" -> strdents are " <<number <<" numbers\n";
}
};
//---------------------------------
int Student::number = 0; //静态数据成员在类外非配空间和初始化
//---------------------------------
void fn()
{
Student s1;
s1.set("Jenny");
Student s2;
s2.set("Randy");
s1.printNumber();
}
//------------------------------------
int main()
{
Student s;
s.set("Smith");
fn();
Student::printNumber();
}
//--------------------------------------

pengzhixi 2008-10-10
  • 打赏
  • 举报
回复
编译没错误,只是你要注意下<<中间没空格
likefermat 2008-10-10
  • 打赏
  • 举报
回复
没返回值。。。是的
rollrock1987 2008-10-10
  • 打赏
  • 举报
回复
问题很严重
一:使用了string 就必须有 #include <string>
二: static int printNumber()
{
cout <<number <<" total numbers\n";
//return 0;
}
你没有返回值

别的没有错 改下就行了


接分
kandianshi 2008-10-10
  • 打赏
  • 举报
回复
没有多“}”
我的怎么提示


0814(问).cpp
.\f0814(问).cpp(24) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(650): could be 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(697): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(735): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(782): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(906): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(913): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(920): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(927): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(168): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(174): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(181): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(188): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(208): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(241): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(261): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(int)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(286): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned int)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(306): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(326): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned long)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(347): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(367): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(388): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(408): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(428): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(448): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
E:\Program Files\Microsoft Visual Studio 8\VC\include\ostream(468): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
while trying to match the argument list '(std::ostream, std::string)'
生成日志保存在“file://d:\My Documents\Visual Studio 2005\Projects\ch08\ch08\Debug\BuildLog.htm”
ch08 - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
likefermat 2008-10-10
  • 打赏
  • 举报
回复
你的<<不是《
wuyu637 2008-10-10
  • 打赏
  • 举报
回复
没有错。。:)也是2005
likefermat 2008-10-10
  • 打赏
  • 举报
回复
void print()
{
cout < <name < <" -> strdents are " < <number < <" numbers\n";
}
};

多了个}?

65,186

社区成员

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

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