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;
相关推荐
XiaoHu02072 分钟前
Linux多线程(详细全解)
linux·运维·服务器·开发语言·c++·git
苏宸啊15 分钟前
C++(二)类和对象上篇
开发语言·c++
fqbqrr28 分钟前
2601C++,编译时连接两个串指针
c++
嵌入式进阶行者30 分钟前
【算法】TLV格式解析实例:华为OD机考双机位A卷 - TLV解析 Ⅱ
数据结构·c++·算法
OC溥哥99936 分钟前
Paper MinecraftV3.0重大更新(下界更新)我的世界C++2D版本隆重推出,拷贝即玩!
java·c++·算法
Jayden_Ruan38 分钟前
C++蛇形方阵
开发语言·c++·算法
星火开发设计40 分钟前
C++ map 全面解析与实战指南
java·数据结构·c++·学习·算法·map·知识
老鱼说AI1 小时前
现代计算机系统1.2:程序的生命周期从 C/C++ 到 Rust
c语言·c++·算法
仰泳的熊猫1 小时前
题目1099:校门外的树
数据结构·c++·算法·蓝桥杯
Z1Jxxx1 小时前
反序数反序数
数据结构·c++·算法