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

Как называется эта штука? - C++

Восстановить пароль Регистрация
 
amatorIP
 Аватар для amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
31.10.2011, 21:04     Как называется эта штука? #1
Есть кусок кода. Как это называется? И что это?
C++
1
2
3
4
5
6
7
8
9
10
11
12
MediaBuffer::MediaBuffer(void *data, size_t size)
    : mObserver(NULL),
      mNextBuffer(NULL),
      mRefCount(0),
      mData(data),
      mSize(size),
      mRangeOffset(0),
      mRangeLength(size),
      mOwnsData(false),
      mMetaData(new MetaData),
      mOriginal(NULL) {
}
Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.10.2011, 21:13     Как называется эта штука? #2
Конструктор класса MediaBuffer. Вызывается непосредственно при создании объекта MediaBuffer. Подробнее можете прочитать в любой книге по ООП в С++
amatorIP
 Аватар для amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
31.10.2011, 21:14  [ТС]     Как называется эта штука? #3
Спасибо!
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
31.10.2011, 21:18     Как называется эта штука? #4
также можно заключить, что класс MediaBuffer наследует от 10 других классов, конструкторы которых вызывает данный конструктор...
amatorIP
 Аватар для amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
31.10.2011, 21:25  [ТС]     Как называется эта штука? #5
И еще один вопрос! Вот такая функция, куда она возвращает mData?
C++
1
2
3
4
void *MediaBuffer::data() const {
    CHECK(mGraphicBuffer == NULL);
    return mData;
}
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
31.10.2011, 21:31     Как называется эта штука? #6
указатель mData возвращается в место вызова функции data()...
можно предположить, что функция CHECK(bool ) как-то модифицирует объект mData, иначе код бессмысленный какой-то, да и в этом случае рациональным его не назвать...
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.10.2011, 21:35     Как называется эта штука? #7
Гляньте тут касательно void*.
BRcr, а где вы увидели 10 классов?
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5817 / 1215 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
31.10.2011, 21:37     Как называется эта штука? #8
BRcr, тут нет 10 классов, просто конструктор передает значения переменным.
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
31.10.2011, 21:55     Как называется эта штука? #9
не спорю, может быть! но могли бы быть и классы
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.10.2011, 21:58     Как называется эта штука? #10
Цитата Сообщение от BRcr Посмотреть сообщение
также можно заключить, что класс MediaBuffer наследует от 10 других классов, конструкторы которых вызывает данный конструктор...
Цитата Сообщение от BRcr Посмотреть сообщение
не спорю, может быть! но могли бы быть и классы
Сами себе противоречите. В первом посте вы утверждали, во втором пытаетесь убедить, что имели в виду некую вероятность существования 10 классов.
Кстати, благодаря чему вы пришли к заключению, что 10 конструкторов других классов вызывают данный конструктор?
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
31.10.2011, 22:11     Как называется эта штука? #11
Цитата Сообщение от soon Посмотреть сообщение
благодаря чему вы пришли к заключению, что 10 конструкторов других классов вызывают данный конструктор?
Вообще-то, к заключению, что один конструктор(конструктор класса MediaBuffer) вызывает десяток родительских конструкторов. К данному заключению меня подтолкнуло нечто, весьма похожее на операцию вызова родительского конструктора:
C++
1
2
MediaBuffer::MediaBuffer(void *data, size_t size)
    : mObserver(NULL)
Далее идет перечисление через запятую... тут, вероятно, моя ошибка, ведь конструкторы должны вызываться все через ту же операцию вызова ":"...
Признаю, неправ
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,886
31.10.2011, 22:25     Как называется эта штука? #12
Цитата Сообщение от amatorIP Посмотреть сообщение
Есть кусок кода. Как это называется?
Это называется "конструктор" + "списк инициализации".
Цитата Сообщение от BRcr Посмотреть сообщение
также можно заключить, что класс MediaBuffer наследует от 10 других классов, конструкторы которых вызывает данный конструктор...
Обычно приставкой m(member) выделяют поля класса.
Цитата Сообщение от BRcr Посмотреть сообщение
можно предположить, что функция CHECK(bool ) как-то модифицирует объект mData, иначе код бессмысленный какой-то, да и в этом случае рациональным его не назвать...
Можно предположить, что это макрос, который выполняет ту же роль, что и assert...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 23:05     Как называется эта штука?
Еще ссылки по теме:

C++ Как называется функция
Как называется условие if (!x) {} и как оно работает? C++
C++ Как называется команда для создания side bar?
C++ Как работает эта функция?
Как работает эта штука, и как сделать нечто подобное ? C++

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

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
31.10.2011, 23:05     Как называется эта штука? #13
Цитата Сообщение от BRcr Посмотреть сообщение
Далее идет перечисление через запятую... тут, вероятно, моя ошибка, ведь конструкторы должны вызываться все через ту же операцию вызова ":"...

C++
1
2
3
4
5
6
7
8
9
10
11
class CTest: public CTest1, public CTest2
{
     void* mData;
     //и ещё много всякой гадости
}
 
CTest::CTest():
       CTest1(), 
       CTest2(x,y),
       mData(NULL)
                  {   ...    }
Конструкторы в списках инициализации перечисляются через запятую так же, как и данные члены.

А префиксом m в начале переменной традиционно награждают данные-члены, что бы сразу отличить их по имени от всех прочих.
Yandex
Объявления
31.10.2011, 23:05     Как называется эта штука?
Ответ Создать тему
Опции темы

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