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;
相关推荐
眠りたいです1 小时前
Mysql常用内置函数,复合查询及内外连接
linux·数据库·c++·mysql
笑鸿的学习笔记1 小时前
qt-C++语法笔记之Stretch与Spacer的关系分析
c++·笔记·qt
hardStudy_h2 小时前
C++——内联函数与Lambda表达式
开发语言·jvm·c++
ZZZS05162 小时前
stack栈练习
c++·笔记·学习·算法·动态规划
位东风3 小时前
【c++学习记录】状态模式,实现一个登陆功能
c++·学习·状态模式
雷羿 LexChien5 小时前
C++内存泄漏排查
开发语言·c++
嘉小华5 小时前
CMake 完全指南:第一章 - 构建的烦恼 - 为什么需要CMake?
c++
Feliz Da Vida5 小时前
[代码学习] c++ 通过H矩阵快速生成图像对应的mask
c++·学习
无聊的小坏坏6 小时前
单调栈通关指南:从力扣 84 到力扣 42
c++·算法·leetcode
YOLO大师7 小时前
华为OD机试 2025B卷 - 小明减肥(C++&Python&JAVA&JS&C语言)
c++·python·华为od·华为od机试·华为od2025b卷·华为机试2025b卷·华为od机试2025b卷