C++ 将类转换为该类指针的简单示例

C++ 将类转换为该类指针的简单示例,c++,pointers,type-conversion,C++,Pointers,Type Conversion,这段代码出现编译器错误。据说从NPC到NPC*没有合适的转换 Player::Player(Game* g) { target = g->getNPCListItem(0); } 这就是所谓的主要: int main() { Game* gameRef = new Game(); } 这是游戏的构造器: Game::Game() { player = new Player(this); } 最后,这里是目标指针的代码: class Player { N

这段代码出现编译器错误。据说从NPC到NPC*没有合适的转换

Player::Player(Game* g) {
    target = g->getNPCListItem(0);
}
这就是所谓的主要:

int main()
{
    Game* gameRef = new Game();
}
这是游戏的构造器:

Game::Game() {
    player = new Player(this);
}
最后,这里是目标指针的代码:

class Player {
    NPC* target;
}
我觉得我的代码的另一部分就是问题所在

这里是酒店:

class Game {
    NPC* nPCList[2];
}
以下是初始化:

bool Game::initNPCList() {
    nPCList[0] = new NPC("Gregory");
    nPCList[1] = new NPC("Tasha");
    return false;
}
最后,这里是在可能产生编译器错误的行中调用的函数

NPC& Game::getNPCListItem(int i) {
    return *nPCList[i];
}
如果需要添加更多信息,请告诉我

输出:

1>------ Build started: Project: CloutGame, Configuration: Debug Win32 ------
1>misc.cpp
1>C:\Zach In A Bear Studios\CloutGame\CloutGame\CloutGame\misc.cpp(66,31): error C2440: '=': cannot convert from 'NPC' to 'NPC *'
1>C:\Zach In A Bear Studios\CloutGame\CloutGame\CloutGame\misc.cpp(66,28): message : No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>Done building project "CloutGame.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
错误列表:

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0413   no suitable conversion function from "NPC" to "NPC *" exists    CloutGame   C:\Zach In A Bear Studios\CloutGame\CloutGame\CloutGame\misc.cpp    66  
Error   C2440   '=': cannot convert from 'NPC' to 'NPC *'   CloutGame   C:\Zach In A Bear Studios\CloutGame\CloutGame\CloutGame\misc.cpp    66
改变

改变


你没告诉你确切是哪一行吗?请加上。你没告诉你确切的是哪一行吗?请加上这个。
NPC& Game::getNPCListItem(int i) {
    return *nPCList[i];
}
NPC* Game::getNPCListItem(int i) {
    return nPCList[i];
}