Я делаю простую ориентированную на колоду / карту / руку систему для университетского задания, и я застрял в этой проблеме.
Я установил простой тестовый класс, который вызывает различные методы в объектах.
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 ?? () ()
Вы заявляете, что возвращаете строку в функции ftring, но фактически ничего не возвращаете. Это плохо.
Ваш метод должен вернуть string
— так ты это объявил. Вы получаете неопределенное поведение.