gpt4 book ai didi

c++ - 获取 undefined reference 错误

转载 作者:行者123 更新时间:2023-11-30 00:57:11 26 4
gpt4 key购买 nike

我希望有人能为我指出正确的方向,以弄清楚为什么我会收到以下错误:

$~/display/triangleDisplayable.cc:4: undefined reference to `Displayable::Displayable()'

我正在尝试抽象一个类 Displayable 并有一个类 triangleDisplayable 来实现它的方法。我有两个头文件是“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;

};

和“triangleDisplayable.h”

    #include "Displayable.h"

class triangleDisplayable : public Displayable
{

public:
triangleDisplayable();
int getSizeOfArrays();

private:
void init();
int getSizeOfPointsArray();
int getSizeOfNormalsArray();

};

然后我有“Displayable.cc”

    #include <iostream>
#include "Displayable.h"

Displayable::Displayable() {
std::cout << "testing Displayable constructor" << std::endl;
}

void Displayable:display(int size) {
}

int main () {
return 0;
}

和“triangleDisplayable.cc”

    #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;
}

我一直在尝试按照各种教程学习如何在 C++ 中进行抽象,但我还没有真正找到任何有用的解决方案。我相信我所有的 #include 都是正确的,我读到这是一个常见问题。错误信息似乎表明问题出在线路上

    triangleDisplayable::triangleDisplayable() : Displayable() {
}

我试图在没有 : Displayable() 的情况下进行编译,但我得到了同样的错误。我的头文件中的语法是否有问题?

最佳答案

不是,错误是在工具调用中。您需要将两个源文件链接在一起(例如 g++ -o foo a.cc b.cc)。并删除其中一个 main 函数,因为您不能拥有两个不同的函数。

关于c++ - 获取 undefined reference 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com