Alvin Seville
|
|||||||||||
1 | |||||||||||
Почему операторы описываются без static?15.01.2019, 15:35. Показов 1139. Ответов 2
Метки нет (Все метки)
0
|
15.01.2019, 15:35 | |
Ответы с готовыми решениями:
2
Почему переменная объявленная static работает не корректно? Может ли быть метод virtual static? И почему? Почему перегрузку операторов в C++ не даёт сделать как static ? Почему в файле все функции объявлены как static? |
1536 / 456 / 101
Регистрация: 17.05.2015
Сообщений: 1,424
|
|
15.01.2019, 16:13 | 2 |
Сообщение было отмечено Соколиный глаз как решение
Решение
Видите, у вас два операнда фигурируют?
Здесь же присутствует только правосторонний операнд: В качестве левостороннего операнда используется *this. this доступен только для не-статичных методов класса.
1
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
||||||||||||||||
16.01.2019, 14:53 | 3 | |||||||||||||||
В С++ операторы с аналогичным набором аргументов вообще описываются вне класса, а для доступа к полям классов их объявляют в классе как friend .
Добавлено через 3 минуты Если второй аргумент внутри оператора не меняется, то лучше его объявлять как const Counter & . Для аргументов в виде простых типов (которые могут поместиться в регистр процессора) лучше использовать просто const, не ссылку.
Но если такие операторы с 2 операндами добавлены, то объявить аналогичные внутри класса, наподобие Counter operator + (const Counter &c2) уже нельзя.Добавлено через 5 минут И ещё. В С++ начиная с 14 стандарта можно объявить операторы и подобно С#,
0
|
16.01.2019, 14:53 | |
16.01.2019, 14:53 | |
Помогаю со студенческими работами здесь
3
Вложенные операторы if. Без else Почему нужен static? Почему static char [] Qt 5.1.1 Static (запуск без dll) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |