不能看到我做錯了什麼......類的初始化沒有匹配的構造
我GameWindow.h有碼 -
#include <iostream>
#include <string>
using namespace::std;
class GameWindow{
string WindowType;
string WindowName;
int TopLeftX,TopLeftY;
int Height,Width;
bool GetBoxed;
public:
GameWindow(string WinType, string WinName,int TLX,int TLY,int y,int x,bool box);
void SetHeight(int y);
void SetWidth(int x);
void SetTopLeftY(int TLY);
void SetTopLeftX(int TLY);
};
和源文件代碼的存在 -
#include "GameWindow.h"
GameWindow::GameWindow(string WinType, string WinName,int TLX,int TLY,int y,int x,bool box){
WindowType = WinType; WindowName = WinName;
TopLeftX = TLX; TopLeftY = TLY;
Height = y; Width = x;
GetBoxed = box;
};
void GameWindow::SetHeight(int y){Height = y;}
void GameWindow::SetWidth(int x){Width = x;}
void GameWindow::SetTopLeftY(int TLY){TopLeftY=TLY;}
void GameWindow::SetTopLeftX(int TLX){TopLeftX=TLX;}
然後在另一個源文件中,我嘗試創建一個GameSpace矢量,並在每次向矢量添加一個時調用構造函數 -
int OffsetX =5;
vector<GameWindow>GameSpace;
GameSpace.resize(8);
GameSpace[0] = GameWindow("MonstersLeftWin", "Misc",
(getmaxx(stdscr)-22-OffsetX), 2, 1, 22, true);
我得到「沒有匹配的構造函數初始化GameWindow」的錯誤。無法看到我做錯了什麼!
我也得到了錯誤,如果我有 -
GameSpace[0] = *new GameWindow("MonstersLeftWin", "Misc",
(getmaxx(stdscr)-22-OffsetX), 2, 1, 22, true);
仍然不確定,如果我需要的「新」有或沒有。
感謝您的幫助。
'在頭文件中使用namespace'是一個壞主意,而'*新的Foo()'順便說一句太,當然你也應該使用成員初始化列表,而不是在構造函數 – Paranaix