自己实现string类,大家讲一下思路。好像string a="string list"; 然后就cout<

cen_jin_long 2008-01-26 03:03:56
这样应该怎么写?

比如我自己一个字符串类 MYSTR。声明一个对像mystr;给对象赋值mystr="Windows";然后输出cout<<mystr<<endl;
如何实现,我查找相关C++重载,对这方面没有讲。
...全文
173 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cen_jin_long 2008-01-28
  • 打赏
  • 举报
回复
我知道了,呵呵。

重载返回一个类型就可以了。
Just4life 2008-01-27
  • 打赏
  • 举报
回复
还是直接重载<<吧
cen_jin_long 2008-01-27
  • 打赏
  • 举报
回复
这种通用些。不错。
crazywille 2008-01-27
  • 打赏
  • 举报
回复
给你两个方法:

1. 重载 <<, 楼上已经有人给了.


2. 重载类型运算符 operator char *, 这种方法应该更适合你.

#include <iostream>

using namespace std;

class AStr
{
char tmp[1024];
public:
AStr(const char *psz)
{
strcpy( tmp, psz );
}

operator char*()
{
return tmp;
}
};

int main()
{
AStr aa = "aldfjasldfkj";
cout<<aa<<endl;
printf("%s", (char*)aa );
return 0;
}
cen_jin_long 2008-01-26
  • 打赏
  • 举报
回复
ostream& string:: operator < <(ostream &out, const string &MYSTR)
{ out < < MYSTR.m_str < < endl;
return out;
}


int main(void)
{
string MYSTR = "TEST";
cout < < MYSTR;
return 0;
}


这个太高深了,类原型怎么写?
cen_jin_long 2008-01-26
  • 打赏
  • 举报
回复
可以重载吗?

想将对像变换成字符串的。
独孤过儿 2008-01-26
  • 打赏
  • 举报
回复
难道还想重载一个printf()?
火箭超人 2008-01-26
  • 打赏
  • 举报
回复
lz干嘛一定要实现printf呢,那是c的东西,cout才是c++的东东,难到不能实现你要的功能吗重载
ostream& string:: operator<<(ostream &out, const string &MYSTR)
{ out << MYSTR.m_str << endl;
return out;
}


int main(void)
{
string MYSTR = "TEST";
cout << MYSTR;
return 0;
}


cen_jin_long 2008-01-26
  • 打赏
  • 举报
回复
两位都是热心的朋友!!!

我现在就是想将对像名变成一printf("%s",对像名)和cout<<对像名<<endl;可以输出的东东。
Benny_ywb 2008-01-26
  • 打赏
  • 举报
回复
重载 << 操作符,用string的 <<输出
HelloDan 2008-01-26
  • 打赏
  • 举报
回复
printf("%s",字符串对像);//这样输出的我倒没有试过,不知有没有其他方法可行的。
cen_jin_long 2008-01-26
  • 打赏
  • 举报
回复
楼上的朋友你好。多谢你。

请问printf("%s",字符串对像);
可以输出吗?

还有一个,麻烦您写得详细一点。呵呵。
HelloDan 2008-01-26
  • 打赏
  • 举报
回复

friend ostream& operator<<(ostream&, const MYSTR&);
cen_jin_long 2008-01-26
  • 打赏
  • 举报
回复
朋友你好,烦请写一下重要实现代码。

如果用printf输出呢?怎么办?
HelloDan 2008-01-26
  • 打赏
  • 举报
回复
重载operator<<

65,210

社区成员

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

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