对struct::struct的未定义引用是什么意思
What does undefined reference to struct::struct mean?
所以我有一些.cc和.h文件。
// Class.cc
#include "Class.h"
Class::Class(){
this->x = 1;
this->y = new HelpingClass[1];
y[0] = HelpingObject{}; // Calls the HelpingObject's default ctor
}
这是我的主.cc文件,我在其中为我的类创建了一个构造函数,它在我的Class.h文件中定义:
// Class.h
#include "HelpingClass.h"
struct Class{
HelpingObject * y; // heap allocated array of HelpingObject
int x; // size of allocated array
Class(); // The constructor
...
}
这个"HelpingObject"包含在我的HelpingClass.h中,在我的VScode文件中也有一个可工作的HelpingClass.cc(我知道HelpingClass实现已经很好地工作了,所以我正在提交HelpingClass.cc(:
// HelpingClass.h
struct HelpingObject {
int a;
int b;
HelpingObject(int a = 0, int b = 10);
}
// Doesn't really matter what this object is, but my "Class" has a field
// which is a heap allocated array of these objects
问题是,我得到一个错误,上面写着"Class.cc:(.text+0x43(:对`HelpingObject::HelpingObject(int,int('的未定义引用"collect2.exe:错误:ld返回1退出状态">
这是什么?如果有帮助的话,我会使用VSCode,但即使我在linux中用所有这些文件制作了一个带有可执行文件的Makefile,我也会收到同样的错误。请帮助
edit:我把实际代码的名称改成了这些通用名称,让它更容易,但我把它复制到这里时搞砸了,哈哈。我的代码中的语法都是正确的,我的实现不是
您在这里犯了一些错误。
Class:Class
需要一个额外的结肠;现在,它是一个goto标签,后面是缺少返回类型的自由函数的定义。解析器不知道该怎么处理它- 您命名了
HelpingClass
的构造函数。。Rational
。它应该是HelpingClass
这些错误混淆了你的工具链,它找不到你的任何构造函数定义!
此外,您应该避免手动内存管理。没有必要。给自己找一个漂亮的向量或unique_ptr。
您必须在每个类声明的末尾添加一个分号。
例如,
struct Class
{
...
}
应该是
struct Class
{
...
};
此外,您必须提供HelpingObject::HelpingObject(int a, int b)
的实现
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 派生类销毁的最佳实践是什么
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 通过JNI传递数据数组的最快方法是什么
- 数据类型"struct seq<0, 1, 2>{}"含义是什么?
- C++ 中的"template <typename From, typename Tag> struct Alias;"是什么?
- 对struct::struct的未定义引用是什么意思
- 当编译器看到 std::vector<Typo> 和 std::vector<struct 拼写错误时发出的诊断之间的差异背后的理由是什么>
- 当已经有"struct"时,在C++中包含'class'关键字的原因是什么?
- 在变量定义中struct是什么意思?c++
- vector中struct的类型名是什么?