无法解析的外部符号

0

请教大佬!!!

目测为刚学的static乱用惹得祸

错误为

LNK2001 无法解析的外部符号 "private: static struct S_textData C_text::initialTextData" (?initialTextData@C_text@@0US_textData@@A) 测试 C:\Users\(用户)\测试\源.obj 1

#include <graphics.h>

struct S_textData
{
	LOGFONT style;
	COLORREF color;
};

class C_text
{
private:
	static S_textData initialTextData;
public:
	C_text();
};

C_text::C_text()
{
	static bool flag = true;
	if (flag)
	{
		gettextstyle(&initialTextData.style);
		initialTextData.color = RED;
		flag = false;
	}
	return;
}

int main()
{
	initgraph(300, 300);
	C_text text;
	return 0;
}
ava
苍穹之上

2021-1-19

0

普通的变量也叫动态变量。

静态变量不同于动态变量,静态变量处于全局数据区,是需要一开始就分配存储空间的。但是类的定义并不负责分配存储空间,所以你需要在类外再定义类的静态变量以便分配存储空间,加上这句:

S_textData C_text::initialTextData;
ava
慢羊羊

2021-1-20

谢谢村长 -  苍穹之上  2021-1-20
技术讨论社区