C++ 未定义引用
我正在尝试编译并运行下面介绍的简单代码C++ 未定义引用,c++,undefined-reference,C++,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
#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;
}
我将QT creator与MingW4.8一起使用
您能评论一下有什么问题吗?您需要在实现文件中定义静态成员。所以对应下面的声明
static Date default_date;
初始化在实现文件中进行
Date Date::default_date(12,12,2014);
您需要一个
Date-Date::default_-Date(/*…*/)其中一个翻译单元(cpp文件)中的代码>。您已经声明了它,但没有定义默认\u数据
。
Date Date::default_date(12,12,2014);