class apple
{
public :
operator orange() const { cout << "operator"; }
} ;
class orange
{
public :
orange (apple &x){cout <<"constructor";}
};
void f(orange o)
{
cout <<"function can accept only oranges ";
}
int main()
{
apple a;
f(a);
}
Выход: Ошибка компилятораКогда конструктор вызывается и когда оператор-функция
Почему этот код дает ошибку компилятора на г ++ компилятор? Почему конструктор оранжевого цвета не вызван при вызове функции f?
Пожалуйста, добавьте сообщение об ошибке на свой вопрос. –
У вас может быть оператор +, operator-, operator = и многие другие ... но не «оранжевый оператор». – Imp
@Imp уверен, что вы можете. –