2

我正在为大学作业制作一个简单的甲板/卡片/手面向对象的系统,但我已经陷入了这个问题。

我建立了一个简单的测试类,它调用对象中的各种方法。

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 ?? () ()
4

2 回答 2

3

您声明要在 fstring 函数中返回一个字符串,但实际上并没有返回任何内容。这是不好的。

于 2013-04-20T05:18:20.963 回答
0

您的方法必须返回 a string- 这是您声明它的方式。你得到未定义的行为。

于 2013-04-20T05:18:40.143 回答