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

Не понимаю сути AObject * (*create)() - C++

Восстановить пароль Регистрация
 
Aiest
Сообщений: n/a
21.06.2011, 11:03     Не понимаю сути AObject * (*create)() #1
Есть абстрактный класс AObject
В нём есть метод static int registerClass(AObject * (*create)());

Вот сам метод
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static int registerClass(AObject * (*create)()){
        int idClass = ++classCounter;
        ClassesListElement * p = classesList;
        while (p != NULL){
            if (p->create == create) {return p->idClass;} // class already registered;
            p= p->next;
        }
        p = classesList;
        classesList = new ClassesListElement;
        classesList->create = create;
        classesList->idClass = idClass;
        classesList->next = p;
        return idClass;
    };
Так же есть метод static AObject * create(){return new Integer;} ; содержащийся в классе Integer наследуемом от AObject .

Скажите пожалуйста что делает метод create() и что за конструкция AObject * (*create)(). что делает и для чего нужна?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 11:03     Не понимаю сути AObject * (*create)()
Посмотрите здесь:

C++ линейный однонаправленный список (вопрос по сути)
Хочу добраться до сути C++
массивчик не понял сути, пользователь сам должен вводить массив? C++
C++ Сломала всю голову, не могу докопаться до сути решения
C++ Не могу разобраться с указателями(не понимаю сути освобождения памяти)
C++ Не могу разобраться в сути работы программы :(
C++ Нужна методичка по Си++: чтобы по сути, но быстро

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.06.2011, 11:48     Не понимаю сути AObject * (*create)() #2
Aiest, Указатель на функцию возвращающую указатель на объект типа AObject и не принимающая параметров.
Соответственно проверяем есть ли уже объект с указателем на именно эту функцию. Если пройдя по всему списку нашли - возвращаем id. Если нет создаем новый. Только и всего. А метод create выделяет память под объект (типа Integer) и возвращает указатель на выделенную память.
Yandex
Объявления
21.06.2011, 11:48     Не понимаю сути AObject * (*create)()
Ответ Создать тему
Опции темы

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