2016-01-11 2 views
-2
#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(); 
} 

выходнедействительными перегрузка операторов C++

"им круг"

"Im круг"

"Im круг"

"им а + оператор"

я хочу, чтобы получить выход этот заказ

"Im круг"

"Im круг"

"им в оператор +"

"Im круг"

Я хочу как третий выход im a + operator. Как я могу исправить этот код, чтобы выход был в этом конкретном порядке?

+0

_' + // недействительный оператор плюс называется '_ Huh ?? –

+1

Ваш код не должен компилироваться, потому что не определено 'operator()'. Пожалуйста, прочитайте http://stackoverflow.com/help/mcve – Praetorian

+0

@ DieterLücking Ах, да. Есть унарный 'operator +()'. –

ответ

1

Чтобы получить выходной хотел просто написать

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

См working demo.

+0

спасибо! но необходимо дать только оператор «+» без a; – Lk2

+0

@therealp Это не допустимое выражение C++, таким образом, вы потеряны. Почему это необходимо на самом деле? Вы не можете вызвать оператора без конкретного экземпляра. –

+0

Друг спасибо, с вашей помощью я исправляю свой код! – Lk2

Смежные вопросы