gpt4 book ai didi

C++ 类在另一个类中初始化,出现错误

转载 作者:行者123 更新时间:2023-11-28 02:38:43 24 4
gpt4 key购买 nike

我有 Java 背景,我正在尝试通过 QT 学习 C++ 来制作一款井字游戏。我在某个类中初始化对象时遇到问题:我希望 MainWindow 类有一个 Player 实例并通过调用它的构造函数来初始化 Player 但我不明白这些错误

#ifndef PLAYER_H
#define PLAYER_H

#include "board.h"
#include <qstring.h>
class Player
{
public:
QString token;
Player(QString);
void jouerCoup(int,int, Board&);
};

#endif // PLAYER_H

这是主窗口类

#include <qstring.h>
#include "player.h"
#include "board.h"
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
Player aPlayer;
private:
Ui::MainWindow *ui;
private slots:
void buttonHandle();
};

#endif // MAINWINDOW_H

在 MainWindow.cpp 中我试试这个

aPLayer = new Player("X");

我得到这个错误:

../tictactoe/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)':
../tictactoe/mainwindow.cpp:6:26: error: no matching function for call to 'Player::Player()'
ui(new Ui::MainWindow)

我尝试使 QString 可变,我在 Player.cpp 中还有一个构造函数,它接受 QString 并将其分配给 Player 的成员。

关于我接下来应该做什么的任何指示?我可以直接在 MainWindow 定义中初始化 Player 吗?

最佳答案

问题可能是您将 aPlayer 成员变量声明为一个 Player 对象,但是您将其初始化为一个指向 Player 对象的指针。您应该将其声明为指针:

Player *aPlayer;

或在 MainWindow 类构造函数中将其初始化为:

MainWindow::MainWindow(QWidget *parent)
:
QMainWindow(parent),
aPlayer("X")
{}

关于C++ 类在另一个类中初始化,出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26683118/

24 4 0
文章推荐: android - C++以二进制流形式读取文件,在中间随机跳过字节
文章推荐: html - 使用字体很棒的图标-导航栏不会崩溃
文章推荐: javascript - 有哪些代码质量/代码覆盖率工具可用于检查 Jasmine 中的 Javascript 测试?
文章推荐: javascript - 当我隐藏
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com