gpt4 book ai didi

c++ - 尝试在构造函数中设置成员变量时代码中断

转载 作者:行者123 更新时间:2023-11-28 01:09:06 25 4
gpt4 key购买 nike

我有这样一个类:

class Player
{
public:
Player(Board * someBoard);

void setSide(char newSide);

protected:
Board * board;
char side;
};

它的实现是这样的:

Player::Player(Board * someBoard)
{
board = someBoard;
side = '0';
}

void Player::setSide(char newSide)
{
side = newSide;
}

现在我有另一个继承自它的类:

class HumanPlayer : public Player
{
public:
HumanPlayer(Board * someBoard);
};

它的简短实现是这样的:

HumanPlayer::HumanPlayer(Board * someBoard) : Player(someBoard)
{
}

现在的问题是 side = '0'; 行使程序卡住(窗口在 Windows 7 中变为白色,不确定这是否意味着它卡住或崩溃)。将其注释掉会使程序运行良好(并且可以将其注释掉,因为该变量尚未在任何地方使用)。

是什么导致了错误,我该如何解决?

编辑!

在将一些内容打印到 fstream 之后,程序突然运行起来了。我试着评论打印出来。它仍然有效。我尝试删除我添加的调试代码。它仍然有效。所以现在我的代码与上面列出的完全相同,但它现在神奇地工作了。

那我现在该怎么办?忽略异常?会不会是编译器错误?

最佳答案

我怀疑问题不是你想的那样。

这听起来像是某种内存损坏问题,但根据提供的信息确实无法判断。我有两个建议给你:

  1. 要么张贴证明问题的最小完整程序,要么
  2. 试试valgrind-type tool 看看它是否能帮助您弄清楚发生了什么。

或者,更好的是,首先在调试器中查看程序的状态(一旦挂起。)

关于c++ - 尝试在构造函数中设置成员变量时代码中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4416267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com