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

как лучше сделать хранение ссылок на экземпляры класса? - C++

Восстановить пароль Регистрация
 
stan98
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 24
31.05.2013, 20:34     как лучше сделать хранение ссылок на экземпляры класса? #1
есть необходимость зранить все созданные экземпляры класса
придумал сдделать это с помощью статического списка - ничего не вышло - ошибка линковки unresolved external symbol

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class MyClass
{
   MyClass();
   ~MyClass;
 
   static std::list<MyClass*> list 
};
 
myClass::MyClass
{
    list.push_back(this);
}
 
MyClass::~MyClass
{
    std::list<MyClass*>::iterator it = list.begin();
    std::list<MyClass*>::iterator it_end = list.end();
 
    for(; it != it_end; ++it)
    {
        if ( (*it) == this )
        {
            MyClass::list.erase(it);
        }
    }
}
подскажите намекните как правильно реализовать такой функционал и почему так как я сделал неправильно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 20:34     как лучше сделать хранение ссылок на экземпляры класса?
Посмотрите здесь:

Разные экземпляры класса ? C++
Как сделать, чтобы функция класса могла работать с обьектами другого класса C++
C++ Статический и динамический экземпляры класса
C++ Вывод контейнера указателей на экземпляры абстрактного класса
Swap для элементов контейнера указателей на экземпляры абстрактного класса C++
Почему все экземпляры класса в векторе имеют абсолютно одни и те же характеристики? C++
C++ Построить отрезок между двумя точками, определенными как экземпляры класса Point
Хранение ссылок на файловые потоки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
31.05.2013, 20:37     как лучше сделать хранение ссылок на экземпляры класса? #2
stan98, Вы хотите у себя в классе хранить свой класс, который тоже будет хранить сам себя в себе?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.05.2013, 22:50     как лучше сделать хранение ссылок на экземпляры класса? #3
Цитата Сообщение от stan98 Посмотреть сообщение
подскажите намекните как правильно реализовать такой функционал и почему так как я сделал неправильно
Идея верная — статическое поле с перечнем указателей на все элементы. Вы просто забыли инициализировать это поле. Напишите где-нибудь в файле реализации строку std::list<MyClass*> MyClass::list; Это инициализирует статическую переменную, которая в определении класса просто объявляется (но не создаётся в программе).

И ещё, лучше использовать set для таких целей. Чуть быстрее будут находиться элементы.
Yandex
Объявления
31.05.2013, 22:50     как лучше сделать хранение ссылок на экземпляры класса?
Ответ Создать тему
Опции темы

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