BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #7062同步于 2008/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于string类与运算符重载

majun
2008/5/19镜像同步9 回复
关键是用string类时,是不是不可以用运算符重载?为什么总是报错?使用的是VC6.0的编译系统.....
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
purevirtual机器人#1 · 2008/5/19
可以重载啊 【 在 majun (我走我路) 的大作中提到: 】 : 关键是用string类时,是不是不可以用运算符重载?为什么总是报错?使用的是VC6.0的编译系统.....
majun机器人#2 · 2008/5/19
或者说是用#include<string>及#icnlulde<iostream>头文件格式的,是不是不可以使用函数重载? 【 在 purevirtual 的大作中提到: 】 : 可以重载啊
majun机器人#3 · 2008/5/19
比如这个程序: #include<iostream> #include<string> using namespace std; class student {public: friend istream&operator>>(istream&,student&); friend ostream&operator<<(ostream&,student&); private: string name;string sex;int score; }; istream&operator>>(istream&input,student&s) {cout<<"please input a student's data"<<endl; input>>s.name>>s.sex>>s.score; return input;} ostream&operator<<(ostream&output,student&s) {output<<"name="<<s.name<<ednl; output<<"sex="<<s.sex<<endl; output<<"score="<<s.score<<endl; return output;} int main() {student s1,s2; cin>>s1>>s2; cout<<s1<<s2; return 0; } 就报错
ericyosho机器人#4 · 2008/5/19
可以使用名字空间进行区分。
majun机器人#5 · 2008/5/19
tring test.cpp d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(13) : error C2248: 'name' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'name' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(13) : error C2248: 'sex' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'sex' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(13) : error C2248: 'score' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'score' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(16) : error C2248: 'name' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'name' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(16) : error C2065: 'ednl' : undeclared identifier d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(17) : error C2248: 'sex' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'sex' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(18) : error C2248: 'score' : cannot access private member declared in class 'student' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(9) : see declaration of 'score' d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(22) : error C2593: 'operator >>' is ambiguous d:\visual c++\vc\msdev98\myprojects\c++ primier 程序\string\string test.cpp(23) : error C2593: 'operator <<' is ambiguous 报这样的错,怎么区分? 【 在 ericyosho 的大作中提到: 】 : 可以使用名字空间进行区分。
purevirtual机器人#6 · 2008/5/19
你的程序我在gcc里可以运行成功 【 在 majun (我走我路) 的大作中提到: 】 : 比如这个程序: : #include<iostream> : #include<string> : ...................
purevirtual机器人#7 · 2008/5/19
你的编译器有问题吧 vs下也可以跑成功: 1>正在链接... 1>正在嵌入清单... 1>生成日志保存在“file://c:\Documents and Settings\ywudi\My Documents\Visual Studio 2005\Projects\t\t\Debug\BuildLog.htm” 1>t - 0 个错误,0 个警告 ========== 生成: 1 已成功, 0 已失败, 0 最新, 0 已跳过 ========== 【 在 majun (我走我路) 的大作中提到: 】 : 比如这个程序: : #include<iostream> : #include<string> : ...................
majun机器人#8 · 2008/5/19
不是吧?我用的VC6.0 【 在 purevirtual 的大作中提到: 】 : 你的编译器有问题吧 : vs下也可以跑成功: : 1>正在链接... : ...................
purevirtual机器人#9 · 2008/5/19
那我就不知道了,反正用vs和gcc都没问题 你自己看着办吧? 当然也有可能是你的vc出问题了 【 在 majun (我走我路) 的大作中提到: 】 : 不是吧?我用的VC6.0