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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aiest
Сообщений: n/a
#1

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

21.06.2011, 11:03. Просмотров 367. Ответов 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++
Вот я тоже дуб в указателях... помогите пожалуйста кому не лениво... с горем пополам заработал Enter (ноуту пора в утиль), и вот (вопросы...

Хочу добраться до сути - C++
И снова здраствуйте друзья) Всех с прошедшими праздниками) Снова прошу помощи у вас. Не могу разобраться в задании, вернее не могу...

Не могу разобраться в сути работы программы :( - C++
#include <iostream> using namespace std; int main() { int i; float number, largest, largest2;

Нужна методичка по Си++: чтобы по сути, но быстро - C++
Всем привет, может кто-нибудь подсказать хорошую литературу по си++ чтобы в сжатом виде и популярно, наглядно были описаны все особенности...

линейный однонаправленный список (вопрос по сути) - C++
Не понимаю смысла линейного однонаправленного списка. Допустим есть список: struct Node { int d; //хранимое...

Сломала всю голову, не могу докопаться до сути решения - C++
Начала изучать c++ builder. Преподаватель задал задачу: даны целые числа p и q. Получить все делители числа q, взаимно простые с p. есть...

массивчик не понял сути, пользователь сам должен вводить массив? - C++
Написать программу, которая предлагает пользователю ввести число и, затем подсчитывает, сколько раз это число встречается в массиве.

При вызове функции Sides () которая по сути должна менять переменные члены класса — ничего не происходит - C++
Всем привет! Такой вопрос, в листинге объявлен класс Rect и определен объект theRect. При вызове функции Sides() которая по сути должна...

create a number - C++
Добрый всем вечер!Затрудняюсь написать программу,которая запрашивает у пользователя число.Задача: - подсчитать количество разрядов...

Create Class Line - C++
Реализации класса, предусмотреть в программе демонстрацию работы указанных конструкторов и методов класса. Прямая, заданная коэффициентами...


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

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

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