| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Помогите понять код |
| Автор: Guest 9.10.2005, 13:44 | ||
Всем привет! Наконец-таки взялся зя изучение С++. Помогите понять следующий код:
Вроде бы всё просто , но я не понимаю почему operator+ принимает один параметр а не два , почему значения a и b не перекрывают друг друга и наконец что означает param.x? |
| Автор: sergejzr 9.10.2005, 14:25 | ||||||
| Ты наверняка ни си прогал до того? Добро пожаловать в ООП! тебе наверняка знакомы структуры, так вот, class можно сравнить со структурой. Все функции обозначенные в class относятся к обьекту этого класса. Грубо говоря в функцию передаётся указатель на сам обьект. Просто это делает компилятор и нам не надо об этом заботиться самим.
Поэтому второй аргумент не нужен. У нас есть для этого this. Причём компилятор подставит его автоматом, если имя переменной в классе существует. Таким образом можно писать много изпользуя мало кода. Теперь про парам Посмотри на функцию CVector CVector::operator+ (CVector param) это переложенный оператор + Аргументом он получает обьект класса CVector и внутри функции может пользоваться его переменными. Опять же для сравнения:
Насчёт этого, не понял вопроса .... |