怎么输出的是地址,不是内容啊?

ttuurr 2005-08-20 02:26:15
帮我看看,怎么输出的是地址,不是内容啊???!!!
#include <iostream>
using namespace std;

class String {
public:
String(const char *value) {
if (value) {
data = new char[strlen(value) + 1];
strcpy(data, value);
}
else {
data = new char[1];
*data = '\0';
}
}
~String() {
delete [] data;
}
operator char *() const { return data;}
private:
char *data;
};

void main() {
String s = "Hello";
cout<<s<<endl;
}
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
K 2005-08-21
  • 打赏
  • 举报
回复
因为已经重载了char *,应该输出Hello的
VS.net2003和DEV C++下面都是输出Hello的,楼主用的VC6.0?
caocheng8230 2005-08-21
  • 打赏
  • 举报
回复
编译器问题,我刚才在DEVC++中试了一下,输出的是内容而不是地址,
VC对很多的标准不支持
ztj0124 2005-08-21
  • 打赏
  • 举报
回复
是的,用vs.net可以通过。
zhangzhentao 2005-08-21
  • 打赏
  • 举报
回复
的确,刚试了vc6,输出为地址
snowbirdfly 2005-08-20
  • 打赏
  • 举报
回复
支持楼上说法~~~
Jagen在路上 2005-08-20
  • 打赏
  • 举报
回复
cout<<(char*)s<<endl;就可以了!

因为你没有重载<<运算符,那么它不会自动进行char*的类型转化。

64,639

社区成员

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

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