我有兩個類新Game
和ApButton
,我想ApButton
使用Game
屬性,所以我想使這兩個朋友的功能,但我不斷收到錯誤:類名不名一類
`Game` does not name a type
我知道我不應該在遊戲類中添加apbutton.h
,但是我必須這樣做,因爲遊戲使用ApButton
(從按鈕繼承的類),您是否有解決此問題的其他解決方案?
下面是兩個類的代碼:
#ifndef GAME_H
#define GAME_H
#include <QtGui>
#include <QWidget>
#include <apbutton.h> //I have to add this
#include <QHBoxLayout>
#include <QTimer>
#include <iostream>
#include <QMouseEvent>
using namespace std;
namespace Ui {
class Game;
}
friend class ApButton;
class Game : public QWidget
{
Q_OBJECT
public:
explicit Game(QWidget *parent = 0);
~Game();
QLabel *bomb_label();
private:
Ui::Game *ui;
ApButton **btn; //that's why I have to include apbutton.h
};
#endif // GAME_H
#ifndef APBUTTON_H
#define APBUTTON_H
#include <QPushButton>
#include <iostream>
#include <QMouseEvent>
#include <game.h>
using namespace std;
class ApButton : public QPushButton
{
Q_OBJECT
public:
explicit ApButton(QWidget *parent = 0);
void setRowCol(int _row,int _col);
void mousePressEvent(QMouseEvent *ev);
private:
string name;
int row;
int col;
Game g; //here is the problem!
};
#endif // APBUTTON_H
請讓你的代碼可讀。在將它粘貼到此處之前格式化*。粘貼後,選擇它並按下Ctrl + K。 –
您在名稱空間中聲明該類,並試圖在全局範圍內定義它。爲此,您需要完全限定名稱:'class Ui :: Game {};' – jrok
另外,您不需要在game.h中包含'apbutton.h'。 「friend」語句不需要類的定義。 –