C++ - пустой метод, вызывающий сигнал SIGSEV

Я делаю простую ориентированную на колоду / карту / руку систему для университетского задания, и я застрял в этой проблеме.

Я установил простой тестовый класс, который вызывает различные методы в объектах.

int main() {
Deck deck = Deck();
deck.DisplayDeck();
deck.Shuffle();
deck.DisplayDeck();
Hand hand = Hand(1);
Card* card;
card = deck.DealNextCard();
hand.AddCard(card);
hand.ftring();
deck.DisplayDeck();
}

Проблема приходит в hand.ftring(), Когда я это называю, это вызывает ошибку сегментации. Странная вещь, это не содержит кода.

в hand.cpp:

string Hand::ftring() {
}

Если я удалю его, он будет завершен. Если я добавляю консольный вывод в метод, он печатает его, а затем вылетает. Я совершенно не знаю, что делать, так как отладчик только утверждает

Program received signal SIGSEGV, Segmentation fault.
In ?? () ()

2 ответа

Решение

Вы заявляете, что возвращаете строку в функции ftring, но фактически ничего не возвращаете. Это плохо.

Ваш метод должен вернуть string - так ты это объявил. Вы получаете неопределенное поведение.

Другие вопросы по тегам