关于运算附重载,在线等

danielqinling 2003-04-14 11:30:09
class myString
{
friend int operator=(int & lhs,const myString & rhs)
{
lhs = 1;
};
private:
char * data;
public:
myString & operator = (const char *);
// ostream & operator << (const myString);
// myString();
void show();

};
...全文
32 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinzdi 2003-04-15
  • 打赏
  • 举报
回复
同意楼上的观点。
int operator=(int & lhs,const myString & rhs)
这里重载的赋值号不会影响作为左值的int型变量的。
只能通过隐式转换。
TopCat 2003-04-15
  • 打赏
  • 举报
回复
赋值号是不能作为非成员函数重载的。

而且操作符重载不能针对基本类型。你的这个想法是做不到的。有变通的做法,但是有风险,就是定义myString的operator int(),

然后就可以这样用:int i = myString("123");

但是这种做法并不提倡,具体原因可以去看《More Effective C++》的相关条款。
bht 2003-04-15
  • 打赏
  • 举报
回复
ok
noproblem_jyb 2003-04-14
  • 打赏
  • 举报
回复
No, no, no.
the following information comes from The C++ Programming Language:

"11.2.2 Predefinied Meanings for Operators[over.predefinied]
Only a few assumptions are make about the meaning of a user-defined operator. In particular operator=, operator[], operator(), and operator-> must be nonstatic member functions; this ensures that their first operands will be lvalues.
..."

remember, "operator=, ..., must be NONSTATIC MEMBER FUNCTIONs;...";

winespirit 2003-04-14
  • 打赏
  • 举报
回复
myString & operator = (const char *);
改为
const myString & operator = (const char *);
zhouhu 2003-04-14
  • 打赏
  • 举报
回复
ok
liu_feng_fly 2003-04-14
  • 打赏
  • 举报
回复
这样改试试
class myString
{
friend int operator=(int & lhs,const myString & rhs);
private:
char * data;
public:
myString & operator = (const char *);
// ostream & operator << (const myString);
// myString();
void show();

};
int operator=(int & lhs,const myString & rhs)
{
lhs = 1;
};

danielqinling 2003-04-14
  • 打赏
  • 举报
回复
main.h:4: `int operator=(int&, const myString&)' must be a nonstatic member
function

danielqinling 2003-04-14
  • 打赏
  • 举报
回复
我的本意就是想重载一个负值运算符,是能够把一个char * 直接负值给整形
njustar 2003-04-14
  • 打赏
  • 举报
回复
赋值运算符好像是单目运算符,真是怀疑上面的程序有没有调试过。
qiuafa 2003-04-14
  • 打赏
  • 举报
回复
劫分

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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