C++类静态变量使用注意的问题

C++ N问之类静态变量共享问题 文章目录前言一、C++类静态变量二、问题 前言 本文介绍C++类静态变量使用时一些混淆点 一、C++类静态变量 类静态变量是归属于类的,类的所有对象共享同一个静态变量? 二、问题 问题:子类是否可以继承父类的静态变量和方法 父类的static变量和函数在派生类中依然可用,但是受访问性控制(比如,父类的private域中的就不可 访问),而且对static变量来说,派生类和父类中的static变量是共用空间 #include <iostream> using namespace st 阅读详情
#include <iostream>
using namespace std;

class X
{
public:
	static int a;
	const static int c =10;
private:
	  static  int b ;
public:
	 int get()
	 {
		  return b;
	 }
};


//静态变量可以在外部定义和赋值,即便它是private的
//int X::b = 10;

int main()
{  
	X x;
    //由于是private在取值的时候就读不到
	//cout<<X::b<<endl;
	//cout<<x.get()<<endl;
	//由于是private在取值的时候就读不到
	//cout<<x.b<<endl;
	//由于X::a没有实例化静态变量a,X只是个类型,所以爆找不到地方的引用错误。
	//cout<<X::a<<endl;
	cout<<X::c<<endl;
	system("pause");
  return 0;
}


RAG项目简历包装指南:从“流水线工人”到“问题解决者”的跃迁(附代码与思路) 本文代码已在Python 3.11 + CUDA 12.3环境测试,部分功能需LangChain 0.2+支持。 阅读详情

相关推荐

Windows 下 Codex MCP 服务配置全攻略:从环境搭建到实战避坑

本文详细介绍了在Windows系统下配置Codex MCP服务的完整流程与实战避坑指南。内容涵盖从Node.js环境搭建、Codex CLI安装,到核心配置文件config.toml的编写与解析,并重点解决了Windows平台特有的环境变量设置、MCP服务启动命令适配等关键难点,帮助开发者顺利完成从环境准备到编辑器插件连接的整个配置过程。

weixin_28826545的博客 2071

C++类中的静态变量

可以通过以下几个例子更形象的说明这个问题://test.cpp #include class A { public: static int a; //声明但未定义 }; int main() { printf("%d", A::a); return 0;} 编译以上代码会出现“对‘A::a’未定义的引用”错误。这是因为静态成员变量a未定义,也就是还没有分

chaomeng的博客 7576

手把手教你用USBasp给Arduino UNO烧写程序(ICSP模式,含BootLoader选择指南)

本文详细介绍了如何使用USBasp编程器通过ICSP模式为Arduino UNO烧写程序,包括硬件连接、软件配置、Hex文件处理和BootLoader选择指南。内容涵盖从新手入门到高级优化的全流程,帮助开发者高效完成烧写任务,特别适合需要修复BootLoader或进行量产烧写的用户。

weixin_33958381的博客 364

[c/c++] 静态成员函数里访问静态成员变量出现 “undefined reference to ”

我们知道,静态成员变量和静态成员函数都是独立于类的实例存在的,即便类实例不存在,静态成员变量和函数都是可以独立访问的。这是因为其内存特殊性而导致的。然而有些时候会把函数的实现写在h文件里,这个时候在使用static成员变量和函数的时候就需要注意,h文件会被编译器认为是声明,因此如果在类中写 static int i;,则编译器会认为这是声明而不是定义,因此 i 实际上并不存在于内存中,这个时候如果在 h 文件的 静态成员函数中访问 i 则会报错 undefined reference to。

ykun089的博客 3533

MATLAB实战:5步搞定铣削稳定性叶瓣图(附完整代码解析)

本文提供了一份基于MATLAB的铣削稳定性叶瓣图实战指南。通过5个清晰步骤,从动力学原理出发,详细解析了利用半离散法构建稳定性判据、模块化代码设计、高效参数扫描及高级可视化的完整流程,并附有完整代码,帮助工程师快速预测和规避加工颤振,优化铣削工艺参数。

weixin_29197051的博客 195

wsl2上运行带有Isaac Gym的程序报错: GPU Pipeline: disabled

显示GPU Pipeline:disabled,查找相关文档发现是WSL2目前不支持Isaac Gym,时,想要在wsl2上运行,最后报错如下。

2303_78660611的博客 957

C++ 类中的静态变量

静态数据成员: 下面看一个例子: #include class Point { public: void output() { } static void init() { } }; void main( void ) { Point pt; pt.init(); pt.output(); } 这样编译是不会有任何错误的。 下面这样看 #include class Po

hlw3330219的专栏 1185

从毫K级温控到分子级洁净:光刻机环境控制系统的技术演进与专利格局

摘要 光刻机环境控制系统是半导体制造中的"隐形精密工程",通过毫K级温度控制(±0.002℃)、超高洁净度(ISO Class 1)等核心技术为纳米级光刻提供环境保障。本文系统分析了温度、湿度、洁净度、流场和压力控制五大技术方向的发展趋势,揭示了从单参数控制向多参数协同智能控制的转型路径。研究显示:1)温度控制正从PID向神经网络智能控制演进;2)EUV光刻将湿度控制推至ppbv级;3)洁净度控制扩展到分子级污染物管理。头部厂商中,ASML侧重系统集成,Nikon专注浸没流场,Canon

huanghm88的专栏 315

Linux动态库(.so)链接探究同一个动态库被间接链接多次时类内静态变量使用问题(附带c++源码解释)

  介绍一种场景,有一个抽象基类生成了一个动态库,记为libcompo.so,继承该基类的具体实现有两个组件,也各自生成了动态库libcompo1.so和libcompo2.so,由于使用到了基类,因此这两个库也是会分别链接基类库的,也就是libcompo.so,然后在可执行文件里,我们为了软件各个组件之间的解耦通过反射技术注册的方式动态加载具体组件,因此可执行文件只用到了该抽象基类的指针,只需要在编译时链接libcompo.so即可,在运行时通过dlopen()加载生成的动态库即可完成工作。   最终软件

weixin_45878768的博客 2155

VN1640 CH5 I/O通道终极指南:【从硬件原理—>工程实战—>自动化测试实战】

摘要:本文详细解析Vector VN1640 CH5 I/O通道的硬件原理与工程应用,涵盖模拟输入(AIN)、数字输入(DIN)和数字输出(DOUT)三大功能模块的配置指南。通过硬件隔离设计实现高精度信号采集与驱动控制,重点分析开漏输出特性及保护机制。提供PWM控制、ECU上电时序测试、传感器闭环控制等实战案例的CAPL脚本代码,并强调多设备同步采集的精准性(时间偏差<1µs)。适用于汽车电子HIL测试、ECU信号监测等场景,所有方案均通过实际项目验证。

汽车控制器系统开发、VIL测试、HIL测试、MIL测试、EMS电喷系统标定与开发、热管理系统标定 759

LLaMA-Factory微调教程5:多模态VLM模型对话

视觉-语言模型(VLM)概述与应用 视觉-语言模型(VLM)是一类结合视觉和语言信息的人工智能模型,旨在实现跨模态的理解与交互。其核心目标包括跨模态理解和生成能力,关键技术涉及模态表示与映射、多模态预训练以及跨模态交互机制。 典型VLM模型包括: CLIP:通过对比学习实现图像和文本的向量空间对齐 BLIP:结合自监督和弱监督学习提升语义对齐 ALBEF:基于BERT结构扩展跨模态注意力 DALL-E系列:基于文本生成图像的生成式模型 CLIP4Clip:扩展CLIP到视频领域 VLM在图像/视频检索、视觉

Cachel Wood的博客 1114

C++ 链接时提示类的静态变量未定义,“undefined reference to”错误

今天在工程中写了一个类,其中包含公有静态变量,但是通过类名调用时,总是报静态变量未定义的错误。 C++内部规定:静态成员变量在类内进行声明,在类外进行定义和初始化,在类外进行定义和初始化的时候不要出现static关键字和private、protected 和public访问规则。 调试很久,才想起来类的静态变量 m_epollfd与m_user_count并未进行定义。 因为类的声明并不会进行内存空间的分配。所以类的静态成员无法在类声明中定义。因此,类的静态成员需要类内声明,类外定义。并且注意定义尽量

simple_lxs的博客 2537

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 118

C++在写静态变量时容易犯的一个小错误

class A { private: ClassWriterFactory(); ~ClassWriterFactory(); static int m_num; }; int ClassWriterFactory::m_num;

pamxy啲Coding窝... 1052

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C++ class static静态变量的使用

最近在项目中用到了,类的静态变量,用来统计类的实例的数量,并根据实例数量来判断类内行为。发现还是很有用。 #include <iostream> #include <unordered_map> using namespace std; class Box { public: Box(); static int niu;//...

码世界 2435

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

c++ 单例模式

1. 什么是单例模式 单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 定义一个单例类: 私有化它的构造函数,以防止外界创建单例类的对象; 使用类的私有静态指针变量指向类的唯一实例; 使用一个公有的静态方法获取该实例。 2. 懒汉版(Lazy Singleton) 教学版,即懒汉版(Lazy Singleton):单例实例在第一次被使用时才进行初始化,这叫做延迟初

帅的没拼音 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C++ 中的.hpp文件

1、*.hpp含义 hpp其实质是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。 而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。 特点: 是Header Plus Plus 的简写。 与.h类似,hpp是C++程序头文件 。 ..

locahuang的博客 5993

【C++】inline的作用

/ 隐式 inline内联函数的 ​定义必须出现在每个调用它的编译单元中,通常放在头文件中,否则编译器无法展开代码-普通函数可以声明在头文件、定义在.cpp文件。

qq7835144的博客 512

C/C++中static关键字不同的含义详解

static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).  (1)局部静态变量  (2)外部静态变量/函数  (3)静态数据成员/成员函数  下面就这三种使用方式及注意事项分别说明  一、局部静态变量  在C/C++中, 局部变量按照存储形式可分为三

Aiphis的博客 708

C++静态变量、静态函数、静态成员

http://blog.sina.com.cn/s/blog_6c45e7990100zg5i.html 静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。

genganpeng的专栏 846

再谈static

我们知道,static有三种使用方式:(1)局部静态变量 ;(2)全局静态变量/函数 ;(3)静态数据成员/成员函数因为static的局部性,全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。但需要注意:如果在头文件中定义static变量,并被多个文件引用,编译是可以顺利通过的!即该头文件被包含了多少次,这些变量就定义了多少次。但是要注意一点, ...

weixin_33911824的博客 77

c与c++ static函数的区别

具体:http://www.verydemo.com/demo_c92_i340588.html c与c++ static函数的区别 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准). (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员

roszhaodan481的专栏 477

c/c++ static关键字

static关键字是C, C++中都存在的关键字,它主要有三种使用方式,其中前两种只指在C语言中使用,第三种在C++中使用(C,C++中具体细微操作不尽相同,本文以C++为准). (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 下面就这三种使用方式及注意事项分别说明 一、局部静态变量 在C/C++中,局部变量按照存储形式可分为三种auto, static,

xie_dream的专栏 518

static用法总结

static用法小结 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准). (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 下面就这三种使用方式及注意事项分别说明 一、局部静态变量 在C/C++中, 局部变量按照存储形式可

circle的专栏 489

static使用方法小结

static使用方法小结 statickeyword是C, C++中都存在的keyword, 它主要有三种使用方式, 当中前两种仅仅指在C语言中使用, 第三种在C++中使用(C,C++中详细细微操作不尽同样, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数以下就这三种使用方式及注意事项分别说明 一、局部静态变量在C/C++中, 局部变量依照存储...

weixin_33766168的博客 58

[C++][类设计] 类中static详解与注意事项

牢记static的注意事项,出现static,不要惧怕。

madajiasijia_1111的博客 153
上一篇: C++单例模型的例子
下一篇: c++多次delete的后果及正确处理方法
RunBoying
博客等级 码龄17年 41粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值