0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
||||||
1 | ||||||
Работа с объектом.17.01.2011, 03:27. Показов 1546. Ответов 17
Метки нет (Все метки)
Вот код:
0
|
17.01.2011, 03:27 | |
Ответы с готовыми решениями:
17
Синхронная работа с объектом Работа с объектом через указатели Работа с классом и объектом Вектор Работа с динамическим объектом |
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
17.01.2011, 03:30 | 2 |
1, 2 - да
так как вы задатите в конструкторе внешней структуры
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 03:39 [ТС] | 3 |
вы наверное имели ввиду так, как задам в конструкторе внешнего класса? Получается я могу использовать лишь конструктор по-умолчанию и не могу передавать параметры?
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
17.01.2011, 03:54 | 4 |
FanAizu, где использовать?
тот вариант который у вас - правильный. Что не устраивает?
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 04:00 [ТС] | 5 |
Не устраивает вот что, если нужно создать объект класса day, то для того, чтобы присвоить значения элементам класса нужно в классе объявить конструктор по-умолчанию, если не надо передавать никаких параметров, либо если нужно, то объявить еще один конструктор, который принимает параметры, чтобы инициализировать значения элементов класса. Ну а как инициализируется объект класса pet, находящийся внутри класса day??? То есть я хочу создать объект класса day и при этом проинициализировать находящийся внутри объект класс pet.
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
17.01.2011, 04:03 | 6 |
всякая хунта будет в полях
можно написать day(int h = 0, int m = 0) { today.minutes = m; // 1) правильная ли инициазация структуры? today.hours = h; } получается одновременно и с параметрами и без
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 04:12 [ТС] | 7 |
В представленном вами коде используются поля структуры. А мне нужно создать объект класса day внутри которого есть элемент класса pet. Так вот как объект класса pet, являющийся элементом класса day проинициализировать нужными значениями??
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
17.01.2011, 10:04 | 8 |
FanAizu, ты в своем коде проинициализировал объект класса time. что тебе мешает также проинициализировать объект класса pet?
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 17:13 [ТС] | 9 |
Вы в ООП, извините, вообще шарите? Данные класса pet находятся в секцие private. Поэтому и придумали конструкторы, чтобы иметь доступ к защищенным данным. Если бы я создавал объект класса pet, то я бы в классе pet добавил бы конструктор по-умолчанию и конструктор, принимающий параметры. Но как мне проинициализировать объект, являющийся элементом класса??? И time это не класс, а структура.
0
|
Каратель
|
||||||
17.01.2011, 17:28 | 10 | |||||
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 17:40 [ТС] | 11 |
Только дочитал сегодня про наследование классов. Получается, чтобы использовать объект в качестве элемента класса нужно использовать наследование? В таком случае почему вы не объявили, что класс pet является базовым по отношению к классу day? И почему в списке инициализаторов вы используете имя объекта, а не название класса? то есть не pet(Name, Years), а dog(Name, Years) .
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 17:48 [ТС] | 13 |
То есть? Если можно и без наследования, то используя список инициализаторов можно передать аргументы конструктору? Если их не передавать, то будет вызван конструктор по умолчанию? И будут ли доступны метода этого объекта?
0
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 17:56 [ТС] | 15 |
то есть я не смогу, как при наследование вызвать в программе унаследованные методы, а могу только внутри класса использовать их? В этом и заключается вся разница в использование наследования и объявление объекта, как элемента класса? И еще я не понял, что вы имели ввиду под учи мат. часть? То есть не понял почему вместо имени класса вы используете имя объекта, чтобы передать конструктору параметры?
0
|
Каратель
|
|
17.01.2011, 18:03 | 16 |
да
потому что нам нужно иницилизировать конкретный объект dog, это сделано на тот случай если бы у тебя было несколько объектов petов внутри и каждый нужно было иницилизировать разными значениями
1
|
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
|
|
17.01.2011, 18:07 [ТС] | 17 |
ясно, значит если бы я использовал наследование, то нужно было бы указывать имя класса, а не объекта?
0
|
Каратель
|
|
17.01.2011, 18:09 | 18 |
совершенно верно
0
|
17.01.2011, 18:09 | |
17.01.2011, 18:09 | |
Помогаю со студенческими работами здесь
18
Работа с объектом Form Работа с объектом Graphics Работа с объектом Session Работа с Ole-объектом Работа с объектом Chart Работа с объектом Date Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |