sigsegv — пустой метод, вызывающий сигнал 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, но фактически ничего не возвращаете. Это плохо.

3

Другие решения

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

0

По вопросам рекламы [email protected]