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;
相关推荐
忘梓.13 小时前
解锁动态规划的奥秘:从零到精通的创新思维解析(10)
c++·算法·动态规划·代理模式
羑悻的小杀马特13 小时前
【动态规划篇】欣赏概率论与镜像法融合下,别出心裁探索解答括号序列问题
c++·算法·蓝桥杯·动态规划·镜像·洛谷·空隙法
愚润求学13 小时前
【动态规划】二维的背包问题、似包非包、卡特兰数
c++·算法·leetcode·动态规划
救赎小恶魔13 小时前
C++算法(5)
java·c++·算法
jjjxxxhhh12313 小时前
RSA加密解密代码
开发语言·c++
ShineWinsu14 小时前
对于C++:模版进阶的解析
开发语言·c++·面试·笔试·求职·进阶·模版
星火开发设计16 小时前
序列式容器:deque 双端队列的适用场景
java·开发语言·jvm·c++·知识
LYS_061817 小时前
c++学习(1)(编译过程)
c++·学习
特种加菲猫17 小时前
C++核心语法入门:从命名空间到nullptr的全面解析
开发语言·c++
浮生091917 小时前
DHUOJ 基础 85 86 87
数据结构·c++·算法