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;
相关推荐
追烽少年x19 分钟前
STL中的设计模式(一)
c++·设计模式
Lumbrologist23 分钟前
【C++】零基础入门 · 第 3 节:条件判断(if、switch)
开发语言·c++·算法
LeocenaY35 分钟前
C/C++ 面试题总结
java·c++·面试
xier_ran43 分钟前
【infra之路】从“三堵叹息之墙”到异构计算的狂飙
开发语言·c++·算法
curry____3031 小时前
邻接矩阵 和 领接表 和 链式前向星对比
数据结构·c++·算法
是星辰吖~1 小时前
C++_string类_调用及模拟实现
开发语言·c++
csdn_aspnet1 小时前
C++ 算法 LeetCode 编号 70 - 爬楼梯
开发语言·c++·算法·leetcode
I Promise342 小时前
C++ 单例模式超详细讲解
开发语言·c++·单例模式
Emerson_20262 小时前
stack,queue,list的区别和联系
数据结构·c++·list·queue·stack
王老师青少年编程2 小时前
2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++初中组初赛真题2:文末附答案和解析)
c++·真题·答案·初赛·2026年·初中组·青少年信息素养大