Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;复制结构未解析链接_C++_Struct - Fatal编程技术网

C++ c++;复制结构未解析链接

C++ c++;复制结构未解析链接,c++,struct,C++,Struct,我正在用c编写一个日期包装器类++ 我想将tm结构复制到另一个结构,但它会抛出未解析的外部链接 错误2错误LNK2001:未解析的外部符号“public:static struct tm*DateUtils::generateDateTimeStruct”(?generateDateTimeStruct@DateUtils@@2主持人@@A) 您需要在类声明之外定义此成员(在某些.cpp文件中): 请注意,在定义其他成员时也会使用带有类名称的前缀: 在类别声明中: static int getT

我正在用c编写一个日期包装器类++

我想将tm结构复制到另一个结构,但它会抛出未解析的外部链接

错误2错误LNK2001:未解析的外部符号“public:static struct tm*DateUtils::generateDateTimeStruct”(?generateDateTimeStruct@DateUtils@@2主持人@@A)


您需要在类声明之外定义此成员(在某些.cpp文件中):

请注意,在定义其他成员时也会使用带有类名称的前缀:

在类别声明中:

static int getTodaysDate();
static void generateDateTimeStruct();
但在课堂之外的定义是:

int DateUtils::getTodaysDate() { ... }
void DateUtils::generateDateTimeStruct() { ... }

由于
myDateTime
已声明具有静态存储,因此需要为其分配一些内存

通常的做法是在一个编译单元中定义它;通常在源文件中:

tm* Wrapper::myDateTime = NULL;

您必须定义静态数据成员。它仅在类定义中声明,而未在类外部定义。在一些代码模块中编写

tm * Wrapper::myDateTime;

声明成员函数,但定义具有相同名称的非成员函数。将定义更改为

static void DateUtils::generateDateTimeStruct(){
    // your code here
}

或者,根本不要定义类-它似乎只是放静态函数的地方,在这种情况下,名称空间更合适。

您只声明了静态成员
myDateTime
,您需要定义itI,我也这样做了,但仍然有相同的错误。在标题中必须有与以前一样的静态tm*myDateTime;在某些代码模块的头之外,必须有tm*DateUtils::myDateTime;我没有看到包装器现在在哪里。我已经更新了代码,它在DateUtils::generateDateTimeStruct上抛出链接错误。它从一个静态方法调用一个静态方法。我只是不明白为什么它不工作而没有任何错误。函数必须定义为void DateUtils::generateDateTimeStruct(){即使我已经定义了它,它仍然抛出相同的错误error@meWantToLearn:请参阅我的编辑:)即使为其分配内存,它仍会抛出相同的错误
tm * Wrapper::myDateTime;
static void DateUtils::generateDateTimeStruct(){
    // your code here
}