gpt4 book ai didi

c++ - 如何在 C++ 中从我的 Tracker 类创建一个 Tracker 对象?

转载 作者:行者123 更新时间:2023-11-30 01:43:38 26 4
gpt4 key购买 nike

我正在制作一个简单的跳棋游戏并设置了网格系统,我只想开始设置下面类中显示的参数;

#include <iostream>
#include <vector>

using namespace std;

class Tracker {
private:
int type_;
int positionx_;
int positiony_;
int checkID_;
public:
Tracker(int type, int positionx, int positiony, int checkID) : type_(type), positionx_(positionx), positiony_(positiony), checkID_(checkID)
{

}
void setType(int type) {
type_ = type;
}

void setPosX(int posx) {
positionx_ = posx;
}

void setPosY(int posy) {
positiony_ = posy;
}

void setCheckID(int ID) {
checkID_ = ID;
}

int getType(int ID) {
return type_;
}

int getPosX(int ID) {
return positionx_;
}

int getPosY(int ID) {
return positiony_;
}

int getCheckID(int positionx, int positiony) {
return checkID_;
}

bool AddPeice(int positionx, int positiony, int checkID) {

}

};

我只是尝试设置每个片段的位置并在我的主类中输入,这样我以后就可以操作它们了。错误是

错误(主动)类“Tracker”不存在默认构造函数

这发生在我像这样设置每一 block 之后:

vector<Tracker> setup;
Tracker checker;


checker.setType(1);
checker.setCheckID(20 + i);
checker.setPosX(xx);
checker.setPosY(yy);
setup.push_back(checker);

为了在其他类中使用 Tracker 对象,我需要向我的跟踪器类添加什么?

最佳答案

你应该使用:

Tracker checker(1, xx, yy, 20 + i);

代替:

Tracker checker;
checker.setType(1);
checker.setCheckID(20 + i);
checker.setPosX(xx);
checker.setPosY(yy);

这是因为您的 Tracker 类具有的唯一构造函数是:

Tracker(int type, int positionx, int positiony, int checkID)

所以行:

Tracker checker;

导致错误:

Error (active) no default constructor exists for class "Tracker"

此外,由于您要将 Tracker 添加到 vector ,如果您有权访问 ,则可以使用 emplace_back特点:

std::vector<Tracker> setup;
setup.emplace_back(1, xx, yy, 20 + i);

这比先构建 Tracker 然后使用 push_back 更有效。

关于c++ - 如何在 C++ 中从我的 Tracker 类创建一个 Tracker 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380923/

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