请教这个const成员有什么问题?
代码如下:
#include "string.h"
class String
{
public:
String(const char *buf)
{
_buf = new char[strlen(buf) + 1];
strcpy(_buf, buf);
i = 10;
}
operator char *() const
{
return _buf;
}
operator int *() const
{
return &i;
}
private:
char *_buf;
int i;
};
error C2440: “return”: 无法从“const int *”转换为“int *”
operator int *() const会编译不过,为什么operator char *() const能编译通过呢?
谁能帮我解释下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
转换一下吧,return (int*)&i;
本帖最后由 bruceteen 于 2011-04-16 08:53 编辑
要么
operator int *()
{
return &i;
}
要么
operator const int *() const
{
return &i;
}
这个我知道,但是为什么呢?