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;
相关推荐
量子炒饭大师31 分钟前
【优化算法】双指针算法的「义体化」重构 ——【双指针】双指针算法中的指针是如何定义的?如何使用它进行一些简单的算法?
c++·算法·重构·优化算法·双指针
小辉同志38 分钟前
62. 不同路径
c++·力扣·多维动态规划
arron88991 小时前
DebugView未打印日志原因
c++
hele_two1 小时前
SDL2高效画实心圆的算法(一)
c++·算法·图形渲染
AbandonForce2 小时前
哈希表(HashTable,散列表)个人理解
开发语言·数据结构·c++·散列表
样例过了就是过了3 小时前
LeetCode热题100 编辑距离
数据结构·c++·算法·leetcode·动态规划
z200509303 小时前
C++中位图和布隆过滤器的一些面试题
开发语言·c++
khalil10204 小时前
代码随想录算法训练营Day-46 动态规划13 | 647. 回文子串、516.最长回文子序列、动态规划总结
数据结构·c++·算法·leetcode·动态规划·回文子串·回文子序列
挨踢ren4 小时前
单例模式:C++实现与多线程安全
c++·设计模式
用户805533698034 小时前
现代Qt开发教程(新手篇)1.14——日志
c++·qt