错误在哪里?
//=====================================
// f0812.cpp
// 误用数据成员
// 210791405
//=====================================
#include<iostream>
using namespace std;
//-------------------------------------
class Student{
int n;
string name;
public:
void set(string str){
static int number = 0;
name = str;
n = ++number;
}
void print(){ cout<<name<<" -> students are "<<n<<" numbers\n"; }
};//-----------------------------------
void fn(){
Student s1;
s1.set("Jenny");
Student s2;
s2.set("Randy");
s1.print();
}//------------------------------------
int main(){
Student s;
s.set("Smith");
fn();
s.print();
}//====================================
用vc6.0运行以后提示这行有错误,但是不知道怎么改!
void print(){ cout<<name<<" -> students are "<<n<<" numbers\n";
[解决办法]
void print(){ cout<<name<<" -> students are "<<n<<" numbers\n";
--------------
更改为:
void print(){ cout<<name.c_str()<<" -> students are "<<n<<" numbers\n";
原因:cout的<<操作并没有用string作为参数输出.
//=====================================// f0812.cpp// 误用数据成员// 210791405//=====================================#include<iostream>using namespace std;//-------------------------------------class Student{ int n; string name;public: void set(string str) { static int number = 0; name = str; n = ++number; } void print() { cout<<name.c_str()<<" -> students are "<<n<<" numbers\n"; }};//-----------------------------------void fn(){ Student s1; s1.set("Jenny"); Student s2; s2.set("Randy"); s1.print();}//------------------------------------int main(){ Student s; s.set("Smith"); fn(); s.print();}//====================================
[解决办法]
换编译器吧。
我这里没有错误。vc2005
[解决办法]
接分接分接分接分接分接分接分接分接分接分接分接分接分接分接分接分接分
[解决办法]
#include <string>
[解决办法]
在Borland C++ 5.6.4上运行正确
报告完毕
[解决办法]
加:
#include <string>
在bcb2010,g++ 4.41,vc2008上编译通过
[解决办法]
VC6相对来说老点。