![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
mant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.6.2004 Репутация: нет Всего: нет |
Здраствуйте.
Такая проблема. Как получить адресс на класс в конструкторе? То есть конструктор должен давать по ссылке указатель на класс. Замучался... |
|||
|
||||
Масяня |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Это делает - this
|
|||
|
||||
achmed |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
в C++ нет адресов классов, есть только адреса обьектов.
|
|||
|
||||
mant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.6.2004 Репутация: нет Всего: нет |
Как конструктор который не может возвращать сможет передать this? Не присваивая this переменным класса
|
|||
|
||||
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: -1 Всего: 1 |
Оно? -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
mant объясни подоходчивее, что надо.
В конструкторе указатель this уже определён - делай с ним что угодно, хоть удаляй |
|||
|
||||
mant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.6.2004 Репутация: нет Всего: нет |
Вот как должно быть:
class A{ ... public A(...); ... }; A::A(...){ ... } A pA(переменная в которую конструктор запишет this); Есть же хитрые методы. Наверно.. ![]() |
|||
|
||||
Олег М |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Немного непонятно. Может так?
Передаёшь в конструктор ссылку на указатель и присваеваешь |
||||
|
|||||
Масяня |
|
||||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Это можно сделать (вернуть this) через параметр конструктора, например,
Это сообщение отредактировал(а) Масяня - 1.7.2004, 18:50 |
||||
|
|||||
Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Я кажется совсем тупой, но я в корне не понимаю зачем нужно получать из конструктора this, когда он и так выдатся конструктором.
Напишем мы class * var = new class(); и var будет содержать этот самый this. Напишем class var; и &var даст нам тот же самый this. |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Ну это ежу понятно. А насчёт зачем - парень спрашивает - мы извращаемся ![]() |
|||
|
||||
Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Да, а я не понял. Далеко мне до ежей.
![]() |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Тоже что-ли вчера футбол смотрел? |
|||
|
||||
Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Да нет, я по жизни
![]() |
|||
|
||||
achmed |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
имхо mant сам не знает чего хочет, а если и знает, то не может обьяснить,
mant, переменная this - это предопределенная, которая неявно передается каждому нестатическому методу класса, кстати она костантная, в вашем случае она имеет тип const A *, т.е. ее нельзя изменить. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |