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;
相关推荐
apocelipes1 小时前
从源码角度解析C++20新特性如何简化线程超时取消
c++·性能优化·golang·并发·c++20·linux编程
ozyzo1 小时前
求1~n的累加和
c++
charlie1145141912 小时前
现代C++嵌入式教程:C++98基础特性:从C到C++的演进(1)
c语言·开发语言·c++·笔记·学习·教程
历程里程碑3 小时前
C++ 18智能指针:告别内存泄漏的利器
开发语言·c++
XFF不秃头4 小时前
力扣刷题笔记-全排列
c++·笔记·算法·leetcode
Code Warrior4 小时前
【C++】智能指针的使用及其原理
开发语言·c++
月光在发光5 小时前
多态(虚函数核心作用原理)--C++学习(0)
c++·学习
Sunsets_Red5 小时前
2025 FZYZ夏令营游记
java·c语言·c++·python·算法·c#
自由生长20245 小时前
从流式系统中思考-C++生态和Java生态的区别
java·c++
饕餮怪程序猿6 小时前
订单分批算法设计与实现:基于商品相似性的智能分拣优化(C++)
开发语言·c++·算法