首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何重载输出<<遇到字符串就不行了

2012-12-16 
为什么重载输出遇到字符串就不行了如果没有字符串,而是int或float等,就没问题。快把我逼疯了,求救!!!!#in

为什么重载输出<<遇到字符串就不行了
如果没有字符串,而是int或float等,就没问题。快把我逼疯了,求救!!!!
#include <iostream.h>
#include <string>

class phone_book
{
public:
std::string name;
std::string add;
std:: string apart;
std::string  home;
std::string mobil;
 friend ostream& operator <<(ostream&,phone_book&);
 }

ostream& operator <<(ostream&output,phone_book&book)
{
output<<book.name <<" "<<book.add <<" "<<book.apart <<" "<<book.home <<" "<<book.mobil <<endl;
return output;
}

int main(void)
{
using namespace std;
phone_book book;
cout<<"input name:"<<endl;
cin>>book.name ;
cout<<"input address:"<<endl;
cin>>book.add ;
cout<<"input apartment:"<<endl;
cin>>book.apart;
cout<"input home_call number:"<<endl;
cin<<book.home ;
cout<<"input mobil:"<<endl;
cin<<book.mobil ;
cout<<book;
return 0;


}
[最优解释]
楼主代码贴出来的是不是原代码啊,怎么有这么多错误呢


cout<"input home_call number:"<<endl;  // <<
cin<<book.home ;            // >> 
cout<<"input mobil:"<<endl; 
cin<<book.mobil ;    // >>

我改正上面的问题之后就可以运行了啊,(头文件.h也改了)

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

class phone_book
{
public:
std::string name;
std::string add;
std::string apart;
std::string  home;
std::string mobil;
 friend ostream& operator <<(ostream&,phone_book&);
 };

ostream& operator <<(ostream &output,phone_book &book)
{
output<<book.name <<" "<<book.add <<" "<<book.apart <<" "<<book.home <<" "<<book.mobil <<endl;
return output;
}

int main(void)
{
using namespace std;
phone_book book;
cout<<"input name:"<<endl;
cin>>book.name ;
cout<<"input address:"<<endl;
cin>>book.add ;
cout<<"input apartment:"<<endl;
cin>>book.apart;
cout<<"input home_call number:"<<endl;
cin>>book.home;
cout<<"input mobil:"<<endl;
cin>>book.mobil ;
cout<<book;
return 0;


}


[其他解释]
额,楼主的程序啊。。。。

热点排行