怪事情!!!

NesTa_xP 2008-10-28 02:14:13
#include<iostream>
#include<string>
using namespace std;
struct Lib{
string a;
string b;
string c;
};
class Libc{
private:
string s[3];
public:
void seta(string s)
{
s[0]=s;
}
string geta()
{
return s[0];
}
void setb(string s)
{
s[1]=s;
}
string getb()
{
return s[1];
}
void setc(string s)
{
s[2]=s;
}
string getcc()
{
return s[2];
}
};
int main(){
Lib x;
Libc s;
string str1="you";
string str2="xiao";
string str3="is nesta";
s.seta(str1);
s.setb(str2);
s.setc(str3);
cout<<s.geta()<<" "<<s.getb()<<" "<<s.getcc()<<endl;
}


编译器报告
1>------ 已启动全部重新生成: 项目: 测试, 配置: Debug Win32 ------
1>正在删除项目“测试”(配置“Debug|Win32”)的中间文件和输出文件
1>正在编译...
1>源1.cpp
1>..\源1.cpp(15) : error C2440: “=”: 无法从“std::string”转换为“char”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>..\源1.cpp(23) : error C2440: “=”: 无法从“std::string”转换为“char”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>..\源1.cpp(31) : error C2440: “=”: 无法从“std::string”转换为“char”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>生成日志保存在“file://c:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\测试\测试\Debug\BuildLog.htm”
1>测试 - 3 个错误,0 个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过 ==========



我明明定义的是string s[3],string类型的数组啊!! 怎么跑出来一个无法转换为char
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
deerwin1986 2008-10-28
  • 打赏
  • 举报
回复
1楼正解
太乙 2008-10-28
  • 打赏
  • 举报
回复
ls有答案了,我就不多嘴了!!
JJZHK 2008-10-28
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
o(∩_∩)o...有答案了……
帅得不敢出门 2008-10-28
  • 打赏
  • 举报
回复
直接用vector<string>vtstr
vtstr.push_back(s);
Vegertar 2008-10-28
  • 打赏
  • 举报
回复
同名参数覆盖了类私有数据。用this进行显式访问,或者将形参重命名。

#include<iostream>
#include<string>
using namespace std;
struct Lib
{
string a;
string b;
string c;
};
class Libc
{
private:
string s[3];
public:
void seta(string s)
{
this -> s[0]=s;
}
string geta()
{
return s[0];
}
void setb(string s)
{
this -> s[1]=s;
}
string getb()
{
return s[1];
}
void setc(string s)
{
this -> s[2]=s;
}
string getcc()
{
return s[2];
}
};
int main()
{
Lib x;
Libc s;
string str1="you";
string str2="xiao";
string str3="is nesta";
s.seta(str1);
s.setb(str2);
s.setc(str3);
cout<<s.geta()<<" "<<s.getb()<<" "<<s.getcc()<<endl;
}


65,210

社区成员

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

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