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

list.push_back ошибка! - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Vikent
 Аватар для Vikent
5 / 5 / 1
Регистрация: 21.07.2010
Сообщений: 35
21.07.2010, 20:46     list.push_back ошибка! #1
Только начинаю писать на C++. Помогите пожалуйста разобраться в ламерской ошибке!
В классе инициализирую list<CProgressCtrl>. Затем в методе пытаюсь положить в неё объект и получаю ошибку компиляции error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'. В чем может быть дело?

C++
1
2
3
4
5
6
list<CProgressCtrl> m_observers;
 
void SyncronizationProgress::Attach(CProgressCtrl progressCtrl)
{
    m_observers.push_back(progressCtrl);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2010, 20:46     list.push_back ошибка!
Посмотрите здесь:

Ошибка при компиляции undefined reference to `List<int>::List()'| C++
C++ класс vector ошибка в push_back()
Initialization list - ошибка C++
C++ Ошибка push_back() в vector
C++ Ошибка list iterator not dereferencable
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.07.2010, 22:42     list.push_back ошибка! #2
Vikent, как я понял, конструктор копирования CObject является закрытым, а для хранения экземпляров в списке необходимо создавать копии объектов. Единственный выход, котороый я вижу, это хранить вместо экземпляров CProgressCtrl указатели на них т.е.:
C++
1
2
3
4
5
std::list<CProgressCtrl*> m_observers;
 
void SyncronizationProgress::Attach(CProgressCtrl* pProgressCtrl) {
  m_observers.push_back(pProgressCtrl);
}
Главное не забудь их в нужный момент удалить.
Vikent
 Аватар для Vikent
5 / 5 / 1
Регистрация: 21.07.2010
Сообщений: 35
21.07.2010, 22:48  [ТС]     list.push_back ошибка! #3
Спасибо, CyBOSSeR! Помогло!

 Комментарий модератора 
Его ник CyBOSSeR.
Чтобы не переписывать ник вручную, просто нажмите на него в левой части окна.
CyBOSSeR
21.07.2010, 22:52     list.push_back ошибка!
  #4

Не по теме:

Vikent, вообще-то я CyBOSSeR
Не за что.

Yandex
Объявления
21.07.2010, 22:52     list.push_back ошибка!
Ответ Создать тему
Опции темы

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