C++ 获取未定义的引用错误
我希望有人能给我指出正确的方向,找出我为什么会出现以下错误:C++ 获取未定义的引用错误,c++,C++,我希望有人能给我指出正确的方向,找出我为什么会出现以下错误: $~/display/triangleDisplayable.cc:4: undefined reference to `Displayable::Displayable()' 我试图抽象一个类displaybable,并拥有一个实现其方法的类triangledisplaybable。我拥有的两个头文件是“displaybable.h”: 和“三角形显示.h” 然后我有了“displaybable.cc” 我试图在没有:Displa
$~/display/triangleDisplayable.cc:4: undefined reference to `Displayable::Displayable()'
我试图抽象一个类displaybable
,并拥有一个实现其方法的类triangledisplaybable
。我拥有的两个头文件是“displaybable.h”:
和“三角形显示.h”
然后我有了“displaybable.cc”
我试图在没有
:Displayable()
的情况下编译,但我得到了相同的错误。头文件中的语法可能有问题吗?否,错误在工具调用中。您需要将两个源文件链接在一起(例如g++-o foo a.cc b.cc
)。并删除一个主
函数,因为不能有两个不同的函数。否,错误在工具调用中。您需要将两个源文件链接在一起(例如g++-o foo a.cc b.cc
)。并删除一个主
函数,因为不能有两个不同的函数。是否编译Displayable.cc并链接到目标文件?请尝试定义构造函数。。i、 e.而不是可显示();尝试Displayable(){};在可显示的.h文件中。这将在所有子类构造函数中调用。我没有将两个源文件链接在一起。谢谢你的帮助!是否编译Displayable.cc并链接到对象文件?请尝试定义构造函数。。i、 e.而不是可显示();尝试Displayable(){};在可显示的.h文件中。这将在所有子类构造函数中调用。我没有将两个源文件链接在一起。谢谢你的帮助!谢谢你,效果很好!我真不敢相信我没听清楚这两个主要功能。谢谢你,真是太棒了!我真不敢相信我没有领会这两个主要功能。
class Displayable {
public:
Displayable();
virtual int getSizeOfArrays() = 0;
void display(int size);
private:
virtual void init() = 0;
virtual int getSizeOfPointsArray() = 0;
virtual int getSizeOfNormalsArray() = 0;
};
#include "Displayable.h"
class triangleDisplayable : public Displayable
{
public:
triangleDisplayable();
int getSizeOfArrays();
private:
void init();
int getSizeOfPointsArray();
int getSizeOfNormalsArray();
};
#include <iostream>
#include "Displayable.h"
Displayable::Displayable() {
std::cout << "testing Displayable constructor" << std::endl;
}
void Displayable:display(int size) {
}
int main () {
return 0;
}
#include <iostream>
#include "triangleDisplayable.h"
triangleDisplayable::triangleDisplayable() : Displayable() {
}
int triangleDisplayable::getSizeOfArrays() {
return 0;
}
void triangleDisplayable::init() {
}
int triangleDisplayable::getSizeOfPointsArray() {
return 0;
}
int triangleDisplayable::getSizeOfNormalsArray() {
return 0;
}
int main () {
return 0;
}
triangleDisplayable::triangleDisplayable() : Displayable() {
}