【问题标题】:void operator overloading c++void 运算符重载 C++
【发布时间】:2016-01-11 20:53:18
【问题描述】:
#include <iostream>
using namespace std;

class Circle{
public:
 Circle(){ cout<<"im a circle\n"; }
 void operator+(){ cout<<"im a + operator\n"; }
};

int main()
{
  Circle();
  Circle();
  + 
  Circle();
}

输出

“我是一个圈子”

“我是一个圈子”

“我是一个圈子”

"我是一个 + 运算符"

我想收到这个订单的输出

“我是一个圈子”

“我是一个圈子”

"我是一个 + 运算符"

“我是一个圈子”

我想作为第三个输出im a + operator。 如何修复此代码以使输出按此特定顺序排列?

【问题讨论】:

  • + //void operator plus called 嗯??
  • 您的代码甚至不应该编译,因为没有定义operator()。请阅读stackoverflow.com/help/mcve
  • @DieterLücking 啊,是的。有一个一元 operator+()
  • 各位对不起,代码已修复再次检查..
  • @therealp “代码已修复” 那更糟。

标签: c++ operator-overloading


【解决方案1】:

要获得想要的输出,只需编写

int main()
{
  Circle a;
  Circle b;
  +a; 
  Circle c;
}

查看working demo

【讨论】:

  • 谢谢!但必须只给出不带 a 的“+”运算符;
  • @therealp 这不是一个有效的 c++ 表达式,因此你迷路了。为什么实际上需要这个?没有具体实例就不能调用运算符。
  • @therealp 哦,我现在很惊讶。也许您可以添加另一个答案,以显示您如何实际修复代码以实现第一条评论中所述的要求?我只是好奇。
猜你喜欢
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2016-04-08
  • 2012-06-02
  • 2014-01-14
  • 2013-03-23
  • 2013-12-03
相关资源
最近更新 更多