C++静态成员变量需要在类外进行定义和初始化-error LNK2001:无法解析的外部符号

现象

在一个类的头文件中,定义了一个static类型的类变量,直接编译,会报错。

例如,在IX.h中定义一个静态的Iy变量,如下:

c 复制代码
class Ix
{
public:
	static Iy* y;
}

编译时会报错,提示如下:

复制代码
Ix.obj : error LNK2001: 无法解析的外部符号 "public: static class Iy * Ix::y" (?y@Ix@@2PAVIy@@A)

分析

原因是,在C++中,静态成员变量需要在类外进行定义和初始化。

解决方法

在Ix.cpp中初始化:

c 复制代码
Iy* Ix::y = NULL;
相关推荐
Polaris北1 天前
第二十三天打卡
c++
船神丿男人1 天前
C++:STL string(一)
开发语言·c++
程序员zgh1 天前
Linux 内存管理单元 MMU
linux·运维·服务器·c语言·开发语言·c++
Smart-Space1 天前
将copilot键映射为右control - 参考powertoys实现
c++
Trouvaille ~1 天前
【Linux】TCP协议基础与连接管理详解:从三次握手到四次挥手
linux·运维·服务器·网络·c++·网络协议·tcp/ip
想做功的洛伦兹力11 天前
2026/2/12日打卡
开发语言·c++·算法
你撅嘴真丑1 天前
蛇形填充数组 与 查找最接近的元素
数据结构·c++·算法
blackicexs1 天前
第四周第四天
数据结构·c++·算法
知无不研1 天前
c++的设计模式(常用)
c++·观察者模式·单例模式·设计模式·简单工厂模式
fpcc1 天前
并行编程实战——CUDA编程的并行前缀和
c++·cuda