Форум программистов, компьютерный форум CyberForum.ru

Вопрос про классы - C++

Восстановить пароль Регистрация
 
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
28.10.2010, 14:16     Вопрос про классы #1
Такой пример. Базовый класс First, и два производных от него класса Second и Third.
C++
1
First*ar[]={new First(параметры),new Second(параметры), new Third(параметры)};
В примере:
Слева массив указателей базового класса, а вот что справа, что означает в данном случае First(параметры)/Second(параметры)/Third(параметры)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2010, 14:16     Вопрос про классы
Посмотрите здесь:

Вопрос про указатели C++
C++ Вопрос про указатели
Обясните пожалуйста все про классы в С++ C++
C++ задавайте вопросы про указателеи и классы
Вопрос про память... C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
28.10.2010, 14:20     Вопрос про классы #2
Здесь идёт создание 3-ёх объектов класса. В скобках (параметры) - параметры для вызова определённого конструктора: по-умолчанию, параметрического или копи-конструктора.
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
28.10.2010, 14:24  [ТС]     Вопрос про классы #3
kowandser, First(параметры) аналогично First а(параметры)?
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
28.10.2010, 14:30     Вопрос про классы #4
Что есть First а(параметры)??

Добавлено через 1 минуту
First - это объект класса.
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
28.10.2010, 15:02  [ТС]     Вопрос про классы #5
Цитата Сообщение от kowandser Посмотреть сообщение
Что есть First а(параметры)??

Добавлено через 1 минуту
First - это объект класса.

Не по теме:

торможу




Подскажите, пожалуйста, как в последнем случае(Third()) должен выглядеть конструктор?
C++
1
2
Second r(10,20,30,40,First::BLUE);
First* ar[]={new First(r), new Second(r),new Third() };
Для Second(r) делаю так:
C++
1
Second::Second(const Second&r){}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.10.2010, 15:13     Вопрос про классы #6
st_dent, Third::Third() {} соотв-о
А Second - Second::Second(int t, int f, int s, int z, First::/*не видя класса не могу сказать что. ну видимо enum*/)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
28.10.2010, 15:16     Вопрос про классы #7
Цитата Сообщение от kowandser Посмотреть сообщение
First - это объект класса.
First - это как раз-таки класс, а вот 'a' (в записи 'First a (параметры)') - это объект этого класса
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2010, 15:32     Вопрос про классы
Еще ссылки по теме:

C++ [C++][классы] маленький вопрос.
Вопрос про char C++
Нужна информация про классы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yur4e
2 / 2 / 0
Регистрация: 20.10.2010
Сообщений: 21
28.10.2010, 15:32     Вопрос про классы #8
Я эту запись понимаю следующим образом:


First * ar[] - массив указателей типа First c именем ar и с неуказанным числом элементов.
new First(параметры) - оператор new возвращает адрес выделенной памяти для объекта типа First и помещает его(адрес) в массив указателей под индексом 0.
new Second(параметры) - оператор new возвращает адрес выделенной памяти для объекта типа Second, базовый класс которого является First(поэтому можно присвоить указатель типа Second элементу массива типа First) и помещает его(адрес) в массив указателей под индексом 1.
new Third(параметры) - оператор new возвращает адрес выделенной памяти для объекта типа Second, базовый класс которого является First(поэтому можно присвоить указатель типа Second элементу массива типа First) и помещает его(адрес) в массив указателей под индексом 2.

Возможно я ошибаюсь. Сам учусь.
Yandex
Объявления
28.10.2010, 15:32     Вопрос про классы
Ответ Создать тему
Опции темы

Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru