从派生类调用基类函数时出现问题
Issues calling base class function from derived class
我目前对 c++ 很陌生,我已经开始学习如何在路径查找算法中使用指针。
我在调用从基类派生的类中的函数时遇到问题。
导致问题的特定代码段是:
FreeTile *tempPointer = new FreeTile();
cout<<tempPointer->getFree()<<endl;
mapp[i][j] = tempPointer;
当我调用getFree(返回布尔值)时,我收到错误:
undefined reference to Tile::getFree()
.磁贴是基类。
自由磁贴的标头为:
#ifndef FREETILE_H
#define FREETILE_H
#include "Tile.h"
class FreeTile:public Tile
{
public:
FreeTile();
virtual ~FreeTile();
void setParent(FreeTile* par);
int getF();
int getG();
int getH();
void setF(int in);
void setG(int in);
void setH(int in);
FreeTile* getParent();
protected:
private:
int F;
int G;
int H;
bool free;
};
磁贴标题为: #ifndef TILE_H #define TILE_H
class Tile
{
public:
Tile();
virtual ~Tile();
bool getFree();
void setFree(bool bo);
protected:
private:
bool free;
};
#endif // TILE_H
#endif // FREETILE_H
最后是磁贴的 cpp 文件:
#include "Tile.h"
#include <iostream>
using namespace std;
bool free;
Tile::Tile()
{
cout<<"Constructor Called"<<endl;
}
Tile::~Tile()
{
//dtor
}
bool getFree(){
return free;
}
void setFree(bool bo){
free = bo;
}
如果您需要更多代码,或者如果我缺少一些公然的东西,请随时羞辱我,就像你喜欢的那样:P
提前谢谢。
附带说明一下,您能否在构造函数中启动一个私有变量,例如free = true
这样做时它声明该变量是私有的。
在 Cpp 文件中将 "bool getFree()" 重命名为"bool Tile::getFree()"
在您的实现中,该函数只是一个常规的 c 全局函数。在固定版本中,它是您在头文件中声明的函数的类函数实现
也在您的磁贴中的第一个,您有一个私有变量"无布尔值"在 cpp 文件中,您有一个全局变量"无布尔值"这是令人困惑的。可能想删除您在 cpp 文件中声明的那个。
想要更深入的解释吗?
是的!我的第一个答案!更深层次的解释:您在类磁贴中声明的函数未定义(刚刚声明),因为您没有在 cpp 文件中的函数定义之前添加"Tile::"(即您没有定义作用域)。您在 cpp 文件中编写的函数在 cpp 文件中既定义又声明,因此只有在 cpp 文件中编写的函数才能调用它(工作原理与 c 相同)。可能当你编写函数时,它不知道"free"是,对吧?因为它不是一个类函数。所以你添加了全局"无布尔值",但这是一个完全不同的变量。很高兴帮忙!不要忘记将此标记为已回答!
- 如何通过派生类函数更改基类中的向量
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 在类函数中初始化外部作用域变量
- c++ 在非类函数中使用类变量
- SDL_PollEvent() 无法捕获类函数内部SDL_QUIT?
- 从类成员函数到类 C 函数指针的转换
- 如何在模板类函数中分配结构值?
- 有没有办法将重载的类函数绑定到函数对象?
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- 遇到C++方形类的问题. 成员函数实现和声明
- 前向声明的问题-Friend函数和行/点类
- 类函数问题.C++
- 从派生类调用基类函数时出现问题
- 无法弄清楚出了什么问题,函数等之后的类中没有正确的变量值
- C++,使用 .h 和 .cpp 文件的类问题,函数'getEstimate'将无法运行
- 试图通过类b函数之一访问类a成员,出了什么问题
- 从向量访问某些类函数C++的问题
- 我在创建对象并使用向量而不是数组使用它们的类函数时遇到问题......我做错了什么?
- 如何处理基类函数已经重载不同访问权限时的名称隐藏问题
- 调用带指针的类函数有问题