1 | |
оператор this23.11.2011, 13:57. Показов 9424. Ответов 4
Метки нет (Все метки)
Прочитал раздел и с книги Стратуструпа о операторе this. но не фига не понял где его использовать его применение
0
|
23.11.2011, 13:57 | |
Ответы с готовыми решениями:
4
Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости |
Заблокирован
|
|
23.11.2011, 14:06 | 2 |
Его, например, можно использовать в тех случаях, когда функция-член должна возвращать либо сам объект данного класса, для которого эта функция вызвана, либо ссылку или указатель на оный. И это далеко не единственный способ ипользования this.
Разные списочные и древовидные структуры также ипользуют эту штуковину во всю.
0
|
Заблокирован
|
|||||||||||||||||||||||||||||||
23.11.2011, 14:20 | 4 | ||||||||||||||||||||||||||||||
this - это не оператор, а указатель и представляет собой адрес объякта, для которого не статическая функция-член была вызвана. Если x - это объект класса T, то указатель this имеет тип T *. Если объект x является константным объектом класса T, то указатель this имеет тип const T *.
Когда вызывается нестатическая функция-член класса, то ей неявно передается этот указатель на объект, который вызвал функцию. Зачем это нужно? Например, чтобы из функции-члена класса в качестве возвращаемого значения вернуть этот объект, который вызвал функцию. Иначе трудно было бы написать оператор присваивания, рузальтатом которого является объект, которому было сделано присваивание. Расссмотрим простой код.
Другой пример
Как это реализовать для объектов класса? Пусть x - это объект класса T. Тогда операция ++x по аналогии с целочисленными объектами должна возвращать сам объект x после его инкремента. Делается это с помощью указателя this
Важно также отметить, что когда внутри класса вы объявляете функцию - член класса с квалификатором const, то, фактически, этот квалификатор относится к неявному параметру this Например,
1
|
Заблокирован
|
|
23.11.2011, 15:01 | 5 |
this - указатель на обьект, который вызвал метод класса...
0
|
23.11.2011, 15:01 | |
23.11.2011, 15:01 | |
Помогаю со студенческими работами здесь
5
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? Оператор break как оператор go to next Как перегрузить оператор<< и оператор>> ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |