C++类在另一个类中初始化,出现错误
C++ Class initialization within another class, getting error
我有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的成员。
有没有迹象表明我下一步该做什么?我可以直接在主窗口定义中初始化播放器吗?
问题可能是您将aPlayer成员变量声明为Player对象,但您将其初始化为指向Player对象的指针。您应该将其声明为指针:
Player *aPlayer;
或在MainWindow类构造函数中将其初始化为:
MainWindow::MainWindow(QWidget *parent)
:
QMainWindow(parent),
aPlayer("X")
{}
相关文章:
- 两个线程一个使用流 Api,另一个线程创建文件失败并出现错误ERROR_SHARING_VIOLATION
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 在使用另一个类"friend"函数时无法发现错误C++
- 包含来自另一个文件的函数会导致范围错误(openFoam)
- C:试图将指针值复制到另一个指针中,得到可修改的左值错误
- 在另一个结构中声明内部结构会导致错误:结构使用无效
- 尝试向 COM 对象添加另一个接口时出现静态强制转换错误 C2440
- 返回带有另一个类的数据成员的构造函数?遇到转换错误?
- 向量迭代器不兼容的错误,用于保存另一个向量的迭代器的向量
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 使用声明:GCC 和 Clang 的另一个错误?
- 为什么直接传递"this"指针来存档是一个错误,而另一个相同类型的指针是可以的?
- 字符* 复制到另一个字符* 运行时错误
- 如何在 VC++ 中通过引用传递另一个对象的方法(错误 C2664)
- LNK2019与另一个工作项目具有相同属性的项目上的错误
- 链接另一个文件中的函数时,Qt 上出现错误 LNK 2019
- C++ 给出编译器错误,将一个(静态)常量全局变量设置为另一个静态常量变量
- 模板函数,它使用 n_copy 复制前 n 个元素形成一个向量,另一个向量导致编译错误
- C++编译器在一个源文件中的一个函数调用中引发错误,但在具有相同函数调用的另一个源文件中不会引发错误
- 尝试从另一个类对象获取值时出现分段错误