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;
相关推荐
阿猿收手吧!8 分钟前
【C++】JSON核心数据结构解析及JSONCPP使用
数据结构·c++·json
报错小能手21 分钟前
线程池学习(二)线程池详解
c++·线程池
w-w0w-w22 分钟前
C++泛型编程
开发语言·c++·算法
-西门吹雪28 分钟前
C++线程之内存模型
c++
梵尔纳多1 小时前
绘制一个三角形
c++·图形渲染·opengl
汉克老师2 小时前
GESP2025年12月认证C++六级真题与解析(单选题8-15)
c++·算法·二叉树·动态规划·哈夫曼编码·gesp6级·gesp六级
郝学胜-神的一滴2 小时前
线程同步:并行世界的秩序守护者
java·linux·开发语言·c++·程序人生
im_AMBER2 小时前
Leetcode 95 分割链表
数据结构·c++·笔记·学习·算法·leetcode·链表
明洞日记2 小时前
【VTK手册032】vtkImageConstantPad:医学图像边界填充与尺寸对齐
c++·图像处理·vtk·图形渲染
Aevget2 小时前
MFC扩展库BCGControlBar Pro v37.1亮点:Ribbon Bar组件全新升级
c++·ribbon·mfc·bcg·界面控件·ui开发