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;
相关推荐
陌路2012 分钟前
RPC分布式通信(2)---四种典型式线程池(1)
java·开发语言·c++
微露清风13 分钟前
系统性学习C++-第二十四讲-智能指针的使用及其原理
java·c++·学习
我是一只小青蛙88815 分钟前
手撕C++STL的list实现
开发语言·c++·list
I_belong_to_jesus20 分钟前
LLVM后端入门8:Subtarget支持
c++·llvm
星火开发设计1 小时前
表达式与语句:C++ 程序的执行逻辑基础
java·开发语言·c++·学习·知识·表达式
天赐学c语言1 小时前
1.17 - 排序链表 && 虚函数指针是什么时候初始化的
数据结构·c++·算法·链表·leecode
兵哥工控1 小时前
mfc精确到0.01秒的方波曲线实例
c++·mfc
郝学胜-神的一滴1 小时前
Qt与Web混合编程:CEF与QCefView深度解析
开发语言·前端·javascript·c++·qt·程序人生·软件构建
一条大祥脚1 小时前
一题N解 两种分块|四维莫队|容斥+二维莫队|希尔伯特排序莫队|zorder排序莫队
数据结构·c++·算法
2501_940315261 小时前
蓝桥云课:分巧克力(二分查找法)
数据结构·c++·算法