Я пытаюсь перегрузить некоторые операторы:
/* Typedef is required for operators */
typedef int Colour;
/* Operators */
Colour operator+(Colour colour1, Colour colour2);
Colour operator-(Colour colour1, Colour colour2);
Colour operator*(Colour colour1, Colour colour2);
Colour operator/(Colour colour1, Colour colour2);
Я получаю эту ошибку для каждой испытанной перегрузки:
expected '=', ',', ';', 'asm' or '__attribute__' before '+' token
Я не могу найти хорошую документацию относительно перегрузки оператора. Поиск с помощью Google результатов в учебных руководствах C++, которые используют классы. В C нет никаких классов. Кто-либо может помочь мне?Спасибо.
C не поддерживает перегрузку операторов (помимо того, что встроено в язык).
Перегрузка оператора недоступна в C. Вместо этого вам придется использовать функцию для «псевдо- overload »операторы:
Colour add_colours(Colour c1, Colour c2) {
return c1 + c2; // or whatever you need to do
}
C вообще не поддерживает перегрузку операторов.
Вы можете реализовать операции только как функции:
Colour colour_add(Colour c1, Colour c2);
Colour colour_substract(Colour c1, Colour c2);
...
Вы также можете переключиться на C ++, но это может быть излишним, если вы сделаете это только для перегрузки.