首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 操作符重载 小疑点

2012-04-03 
C++ 操作符重载 小问题1, Person& operator + (const Person&)实现:Person& Person::operator+(const P

C++ 操作符重载 小问题
1,
Person& operator += (const Person&);实现:
Person& Person::operator+=(const Person *p)
{

this->knowledge+=p->knowledge;

return *this;
}

 Person& operator += (const Person&) const;
两者什么区别,后者如何实现?
2,Person& operator +() const,重载+号怎么用,如何实现的? 





[解决办法]
Person& Person::operator+=(const Person &p)
{

this->knowledge+=p.knowledge;

return *this;
}
一个传引用,一个传指针

Person& operator +(const Person &p) const
{
static Person pt;
pt.knowledge=knowledge+p.knowledeg;
return pt;
}
[解决办法]
对一个 const 类型的对象执行 +=,你看着舒服么……

至于怎么实现,完全取决于你要什么效果。
[解决办法]
等待答案。。。
[解决办法]

探讨
引用:
引用:
2,Person& operator +() const,重载+号怎么用,如何实现的?

不要这样重载,即使用静态变量看起来可能可以达到效果,但是一旦遇到 (a+b) + (c+d) 这样的表达式,你保证会悲剧……

那这个重载是怎么实现的?这不是没参数呢吗?

热点排行