未定义的引用
Undefined reference
我正在尝试编译并运行下面的简单代码
#include <iostream>
class Date {
int d,m,y;
static Date default_date;
public:
Date(int dd=0, int mm=0, int yy=0);
static void set_default(int d, int m, int y);
};
Date::Date(int dd, int mm, int yy)
{
d = dd ? dd : default_date.d;
m = mm ? mm : default_date.m;
y = yy ? yy : default_date.y;
}
void Date::set_default(int d, int m, int y)
{
default_date = {d, m,y};
}
void f()
{
Date::set_default(4,5,1945);
}
int main()
{
f();
return 0;
}
但是我得到一个链接器错误:
`error: undefined reference to `Date::default_date'`
我正在使用MinGW 4.8 的QT创建者
你能评论一下出了什么问题吗?
您需要在实现文件中定义静态成员。因此,对应于以下声明,
static Date default_date;
初始化进入实现文件
Date Date::default_date(12,12,2014);
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中