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 小时前
实战设计模式之访问者模式
c++·设计模式·架构
Mr_WangAndy13 小时前
C++数据结构与算法_线性表_链表
c++·环形链表·合并链表·链表刷题·链表刷题总结
adore.96813 小时前
2.24 oj95 96 97
开发语言·c++·算法
cui_ruicheng13 小时前
C++ 多态详解(上):概念与语言机制
开发语言·c++
fpcc13 小时前
并行编程实战——CUDA编程的其它Warp函数
c++·cuda
hope_wisdom13 小时前
C/C++数据结构之用链表实现队列
c语言·数据结构·c++·链表·队列
wangluoqi13 小时前
c++ 图论-强连通分量 小总结
开发语言·c++
十五年专注C++开发13 小时前
tiny-process-library:一个用 C++ 编写的轻量级、跨平台(支持 Windows、Linux、macOS)的进程管理库
linux·c++·windows·进程管理
雾岛听蓝13 小时前
C++异常处理
c++·经验分享·笔记
牛马大师兄13 小时前
数据结构复习 | 循环链表
c语言·数据结构·c++·笔记·链表