![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Всем привет! Наконец-таки взялся зя изучение С++. Помогите понять следующий код:
Вроде бы всё просто , но я не понимаю почему operator+ принимает один параметр а не два , почему значения a и b не перекрывают друг друга и наконец что означает param.x? |
|||
|
||||
| sergejzr |
|
||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Ты наверняка ни си прогал до того?
Добро пожаловать в ООП! тебе наверняка знакомы структуры, так вот, class можно сравнить со структурой. Все функции обозначенные в class относятся к обьекту этого класса. Грубо говоря в функцию передаётся указатель на сам обьект. Просто это делает компилятор и нам не надо об этом заботиться самим.
Поэтому второй аргумент не нужен. У нас есть для этого this. Причём компилятор подставит его автоматом, если имя переменной в классе существует. Таким образом можно писать много изпользуя мало кода. Теперь про парам Посмотри на функцию CVector CVector::operator+ (CVector param) это переложенный оператор + Аргументом он получает обьект класса CVector и внутри функции может пользоваться его переменными. Опять же для сравнения:
Насчёт этого, не понял вопроса .... |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |