Почему перегруженный оператор не может принимать unsigned int?
Пример:
exampleClass& operator++(exampleClass& ex,unsigned int intt)
{
}
ошибка:
error: postfix ‘exampleClass& operator++(exampleClass&, unsigned int)’ must have ‘int’ as its second argument
friend exampleClass& operator++(exampleClass& ex,unsigned int intt);
++
- либо унарный, либо постфиксный оператор. В любом случае он может принимать только один-единственный аргумент. И это ваш exampleClass
. Больше у него нет никаких аргументов.
Опциональный т. наз. "второй" параметр в объявлении функции operator ++
- фиктивный. Это "костыль", предназначенный для отличения постфиксного ++
от префиксного ++
при объявлении. Этот фиктивный второй параметр должен иметь тип int
. Так требуют правила языка С++. Какой тип имеет этот второй "параметр" для вас значения иметь не должно, ибо фактически принимать вы его скорее всего никогда не будете.
Обратите также внимание на то, что объявление operator ++
с дополнительным фиктивным параметром (типа int
) перегружает именно постфиксный оператор ++
для вашего класса. Традиционно, постфиксный оператор ++
должен возвращать "старое", исходное значение своего операнда (значение до инкремента). Для выполнения этого требования обычно приходится возвращать результат такого ++
по значению, а не по ссылке. Что вы собрались делать внутри своего ++
и как вы планируете возвращать результат по ссылке - не ясно. Закрадывается подозрение, что на самом деле вы пытаетесь реализовать функциональность оператора +=
, но зачем-то вцепились в ++
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть две структуры, реализующие геометрические понятия точки и вектораДля инициализации вектора требуется две точки
Все мы знаем, что к float нельзя (точнее не рекомендуется) применять операцию ==Почему - думаю сами знаете
OpenProcess не возвращает хэндл процесса, при этом hwnd и procID не равен NULL
Условие задачи на картинкеКод что я написал ниже: Почему-то всегда если ввожу большое число(около 1 * 10^10) выдает результат 17:174