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

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

Войти
Регистрация
Восстановить пароль
 
Misha_prog
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 184
#1

Ограничения в конструкторе - C++

15.04.2014, 22:00. Просмотров 155. Ответов 0
Метки нет (Все метки)

Все привет!!!Возника проблема, пытаюсь написать два класса игрок и команда , игрок модет переходить из команды в команду , но также при создании класса игрока я ему сразу команду передаю , в игроке команда хранится по умному указателю weak_ptr, а в классе команда хранится множество умных указателей на футболистов команды. Логично что при создании игрока когда я ему передаю какую то команду , и в эту же команду должен передаваться указатель на футболист длля добавления в множестов пытаюсь я это сдлелать так
вот небольшой отрывок кода
C++
1
2
3
4
5
6
7
8
9
10
11
Player::Player(std::shared_ptr<Team> const& team)
    :m_team(team)
{
    team->AddTeam(shared_from_this());
      // ...
}
 
//.....
private:
std::weak_ptr<Team const>   m_team;
}
и конечно вот так у меня вначале класс записан
C++
1
2
3
class Player:
    public Person,
    public std::enable_shared_from_this<Player>
всё компилируется но при debugge R6010 abort has been called , под отладкой обнаружил что падает именно на этой строке team->AddTeam(shared_from_this()); погуглив я так понял что ошибка из -за того что я вызываю это именно в конструкторе, но может быть я совсем не то понял.
Может быть кто встречался с такой проблемой ? Подскажите пожалуйста что я делаю не так !
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 22:00     Ограничения в конструкторе
Посмотрите здесь:

Заполнение структуры в конструкторе - C++
Нужно в конструкторе вызвать функцию заполнения структуры. Без цикла все работает, а вот с циклом даже в функцию похоже не заходит. Может...

Инициализация указателей в конструкторе - C++
Всем привет! Вот интересный вопрос. Написано, что до вызова тела конструктора создаются поля класса. Для пользовательских типов -...

выделение памяти в конструкторе - C++
Здравствуйте! Объясните пожалуйста, зачем выделять память в конструкторе, если выделяется память под объект? массивы. (тут все...

Ошибка в конструкторе копирования C++ - C++
Помогите, пожалуйста создать конструктор копирования, который будет копировать элемент и добавлять его в список. У меня получился такой...

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

ZeroMemory в конструкторе b __vfptr - C++
Есть два базовый и производный классы с виртуальными методами. В конструкторах хочу обнулить все поля, но если я делаю ZeroMemory(this...

проинициализировать строку в конструкторе - C++
Привет. Помогите, пожалуйста разобраться со строками. что с ними делать в конструкторе, функции, деструкторе. #include &quot;stdafx.h&quot; ...

инициализация перменных в конструкторе - C++
у меня есть статический вектор векторов инт(vector&lt;vector&lt;int&gt;&gt;),который мне нужно заполнить данными,но при попытке написать ...

Ошибка в унаследованном конструкторе - C++
Битый час сижу и не могу понять, в чем дело. Компилятор на 19 строке выдает ошибку undefined reference to `vtable for baseDMA' #ifndef...

окрытие файла в конструкторе - C++
Добрый день. Я хочу создать объект для работы с файлом. На сколько корректно открывать его в конструкторе? Если файл не откроется,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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