CLion 说 C++ class 函数不存在
CLion saying a C++ class function doesn't exist when it does
我有一个名为 Computer
的 class,其中有一个名为 setPos
的函数。 Clion 拒绝承认 getPos
或除构造函数之外我放入其中的任何其他函数的存在。
来自 main.cpp
的片段
Computer gateway = Computer::Computer("Gateway");
gateway.setPos(&neighbor,&supermarket, nullptr, nullptr);
Computer.hpp
class Computer
{
public:
Computer::Computer(string name);
void Computer::setPos(Computer* up, Computer* right, Computer* down, Computer * left);
string Computer::getName();
string name;
Computer* up = nullptr;
Computer* down = nullptr;
Computer* right = nullptr;
Computer* left = nullptr;
};
Computer.cpp
#include "Computer.hpp"
Computer::Computer(int level, bool hidden, string name, int money)
{
this->name = name;
}
void Computer::setPos(Computer* up, Computer* right, Computer* down, Computer * left)
{
this->up = up;
this->down = down;
this->right = right;
this->left = left;
}
string Computer::getName()
{
return this->name;
}
该函数存在,我的代码按预期工作,但 CLion 说它不存在。我该如何解决 IDE
中的这个问题
正如@JackVanier 所说,从头文件的声明中删除 class 名称解决了这个问题。
我有一个名为 Computer
的 class,其中有一个名为 setPos
的函数。 Clion 拒绝承认 getPos
或除构造函数之外我放入其中的任何其他函数的存在。
来自 main.cpp
的片段 Computer gateway = Computer::Computer("Gateway");
gateway.setPos(&neighbor,&supermarket, nullptr, nullptr);
Computer.hpp
class Computer
{
public:
Computer::Computer(string name);
void Computer::setPos(Computer* up, Computer* right, Computer* down, Computer * left);
string Computer::getName();
string name;
Computer* up = nullptr;
Computer* down = nullptr;
Computer* right = nullptr;
Computer* left = nullptr;
};
Computer.cpp
#include "Computer.hpp"
Computer::Computer(int level, bool hidden, string name, int money)
{
this->name = name;
}
void Computer::setPos(Computer* up, Computer* right, Computer* down, Computer * left)
{
this->up = up;
this->down = down;
this->right = right;
this->left = left;
}
string Computer::getName()
{
return this->name;
}
该函数存在,我的代码按预期工作,但 CLion 说它不存在。我该如何解决 IDE
中的这个问题正如@JackVanier 所说,从头文件的声明中删除 class 名称解决了这个问题。