读书人

C++ 操作符重载 小疑点

发布时间: 2012-04-03 12:38:19 作者: rapoo

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) 这样的表达式,你保证会悲剧……

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

读书人网 >C++

热点推荐