Player::Player() {
target = new NPC();
}
NPC Player::getTarget() {
return *target;
}
这是获取当前NPC的内存地址的方法。
NPC::NPC() {
relationship = -35.0;
}
float NPC::getRelationship() {
return relationship;
}
bool NPC::setRelationship(float r) {
relationship = r;
return false;
}
这些是getter和setter函数。
我正在使用播放器类,并将其作为参数p传递给onTrigger()方法:
float rel = p->getTarget().getRelationship();
这是被称为“ getter”的东西
cout << p->getTarget().setRelationship(rel - 10.0);
这是被称为“设定者”。
我试图创建一个只输出“ test”的测试方法,然后我将其称为“ setter”方法。有效。所以问题肯定出在setter的定义中……但是看起来很完美:(
此方法
NPC Player::getTarget() {
return *target;
}
创建一个NPC类型的临时对象。因此,更改此临时对象不会影响target指向的对象。