@MaM

Как получил указатель на экзепляробъекта?

При вызове конструктора this возвращает указатель на экземпляр, но вот при итерации по вектору объектов возвращается значение как я понял на сам класс. Я побывал получить * оператором указатель, но компилятор вежливо заметил, что у меня не определен он для класса. Я определил его как return this. И все равно я получаю указатель на базовый класс. Может я как-то не так притертую?
for (auto card : hand)
{
buff(true,*card);
LUA_listener_StartGame(card);
}
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
Взятие адреса &. * применяется наоборот к указателю, чтобы значение получить. И еще тут нужна ссылка for (auto &card : hand)ю Иначе вы получите копию карты.
Ответ написан
@MarkusD Куратор тега C++
все время мелю чепуху :)
Это называется категориями значений.

Литературка для чтения.
en.cppreference.com/w/cpp/language/value_category

Коротко.
Объявление типа `int` - тип с хранением по значению.
Объявление типа `int*` - тип с хранением по указателю.
Объявление типа `int&` - тип с хранением по ссылке.

Любая из этих форм записи типа может быть использована для определения переменных, параметров и результатов функций.

for (auto card : hand)
Говорит что card принимается по значению через копирование содержимого итератора. Время жизни card ограничено пространством цикла.

for (auto& card : hand)
Говорит что card принимается по ссылке содержимого итератора.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы