![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Здравствуйте вот пример из книги здесь объясняется механизм свойств, у меня есть несколько вопросов:
Почему тут написано что из программы, мы можем изменить значение нашего свойства так:
1) из main() мы этого не зделаем, т.к объект pobj объявлен в конструкторе MyClass. Что имеется в виду 2) поясните пожалуйста эту строчку:
зачем нам инициализировать конструктор базового класса QObject что-то Я подзабыл, знаю что это нужно. |
||||
|
|||||
| ller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
Затем что производный клас, это дополнение базового, и сначало нужни инициализировать базовый клас, а потом спицифичное для потомка.
|
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
ller, это все понятно, но Я не могу себе это представить. При создании объекта производного класса сначала вызывается конструктор базового класса, и что это нам дает?
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
yngwie19, На этот вопрос даже отвечать не хочется.
Вот: http://forum.vingrad.ru/index.php?showtopi...t&p=1893904 П.С. Не нужно дублировать! -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
andrew_121, мне сказали что этот вопрос про конструктор базового класса относится к разделу для новичков, поэтому Я и создал здесь эту тему. А в той теме обсуждается другой вопрос.
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
yngwie19, Ладно.
Но ссылочкой воспользуйся. Твой вопрос про конструкторы и наследование, даже для раздела новичков прост) -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Можно тогда пояснить про это
Это сообщение отредактировал(а) yngwie19 - 12.6.2009, 14:27 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Кто такой pobj, и от кого унаследован твой объект?
Сможешь ответить? Это и есть ответ. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| ller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
И еще не забывай про область видимости, где он объявлен
|
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
посмотрите на картинку, Почему тут написано что из программы, мы можем изменить значение нашего свойства так:
|
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Вы наверно путаете о каком pobj идет речь. Со всем не о параметре передаваемого в конструктор, а о примерно следующем:
|
||||
|
|||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
mes, ну понятно значит пример из книги не полный. Этот Шлее очень запутал. Теперь вроде понятно. Осталось только вспомнить зачем при создании объекта производного класса нужно инициализировать конструктор базового класса?
Добавлено через 14 минут и 12 секунд в принципе в данном примере нет необходимости инициализировать конструктор базового класса, можно записать просто:
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Для того же, для чего чего инициализируется производный. Но мне кажется Вас больше интересует не общий вопрос об инициализации, а зачем в конструктор передается указатель на объект. Для этого открываем : http://doc.trolltech.com/4.5/qobject.html#QObject и видим что этот параметр означает указатель на предка. Добавлено через 3 минуты и 56 секунд Шлее тут не причем. Вы запутались потому что акцептировали внимание на названии переменной, которое волей случая оказалось одинаковым у двух объектов, и приняли разные объекты за один. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
mes, т.е всегда когда мы наследуем от класса QObject, или создаем объект класса QObject, то в качестве параметра создаваемого объекта должны указать адрес родительского объекта, а если его нет то NULL ?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
несколько не так- не должны, а можем : объект класса QObject позволяет задать родителя, если это нужно. Ну а наследникам самим решать оставлять такую возможность или нет |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |