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;
相关推荐
AI视觉网奇7 分钟前
ue 5.5 c++ mqtt 订阅/发布 json
网络·c++·json
程序员-King.13 分钟前
day159—动态规划—打家劫舍(LeetCode-198)
c++·算法·leetcode·深度优先·回溯·递归
txinyu的博客15 分钟前
解析muduo源码之 StringPiece.h
开发语言·网络·c++
墨雪不会编程23 分钟前
C++【string篇4】string结尾篇——字符编码表、乱码的来源及深浅拷贝
android·开发语言·c++
CSDN_RTKLIB1 小时前
【map应用】组合键统计
c++·stl
txinyu的博客1 小时前
解析muduo源码之 TimeZone.h & TimeZone.cc
linux·服务器·网络·c++
爱吃生蚝的于勒1 小时前
【Linux】零基础学习命名管道-共享内存
android·linux·运维·服务器·c语言·c++·学习
陳10301 小时前
C++:继承
开发语言·c++
txinyu的博客1 小时前
解析muduo源码之 atomic.h
服务器·c++
xiaoye-duck1 小时前
C++ string 类使用超全攻略(下):修改、查找、获取及常见实用接口深度解析
开发语言·c++·stl