C & C++ 作用域的概念

【C转C++】超好用的函数引用& C转C++之超好用的函数引用& 我相信觉得部分人在刚学C语言的函数的时候,都被函数的参数传值规则给弄晕了,虽然C中可以通过指针实现对原变量进行操作,但与C++对比起来,C++的引用&就真的太好用了! 回顾C中的函数参数传值 之前写过一篇文章SWAP函数详解,这里copy过来给不懂或没看过朋友 #include <stdio.h> //w_swap即wrong swap 展示了两个常见的错误swap函数 void w_swap1( int a, int b ) { int 阅读详情

  作用域在程序设计语言中非常重要,通常来说整个程序中所用到的标识符并不是在所有的范围内都是可见的,而若在某个范围内标识符是可见的,我们就认为此范围为标识符的作用域。

  标识符的作用域通常是由编译器和链接器的特性所决定的。

  在C语言中,函数内的变量,在声明时,被分配在栈空间中,故在函数退出时,变量被销毁,因此变量的作用域,只是在函数体内!而在函数体内声明的static 类型变量,虽然在分配内存空间时,分配在全局变量区,但由于编译器的编译规则,它将在声明的函数体内可见,其他函数体内并不能调用此变量,因此它的作用域也在函数体内!声明在函数体外的static 类型的变量或函数,也被分配在全局变量区,且在程序开始时就被创建,在程序结束时被销毁,但由于为static类型,所以编译器并不会将变量或函数导出,因此在链接阶段,其他文件并不能链接到此文件中的static类型和变量或函数!所以static类型的变量或函数的作用域为声明开始到文件结束 !因此在C语言中,只有全局变量和全局函数在整个程序中是可见的!

  在C++中,对于对象而言,在main函数中对象的作用域为最近的一段花括号开始,到邻近的后花括号结束,因为此时对象的析构函数被调用,对象被销毁!全局对象的作用域为声明后的整个文件,析构函数在最后被调用!

C/C++ #define的作用域问题 #include "definetest.h"#include #include using namespace std;definetest::definetest(void){}definetest::~definetest(void){}void definetest::todefine(){#define TESTDEFI 阅读详情

相关推荐

【C++养成计划】深入浅出——变量作用域(Day3)

小白专属的《C++21天养成计划》

不积跬步,无以至千里! 4775

什么是作用域?作用域分类与简介

什么是作用域? 规定了程序中可以访问标识符的区域。 当变量或函数在文件的某个位置被声明后,那么只能在特定的区域内才能访问这些内容。这个区域就是由标识符的作用域决定的。 标识符的作用域就是在程序代码中,可以使用该标识符的区域。 作用域可以分为:(编译器识别)文件作用域,函数作用域,代码块作用域(块作用域),原型作用域 标识符声明的位置决定它的作用域。 1.文件作用域: ***在代码块之外声明的标识符都具有文件作用域,表示该标识符从声明处开始到文件结尾结束都可被访问。 在文件中定义的函数名也具有文件作用域,函

xiawucha159的博客 5025

从0开始使用ArcGIS实现克里金(Kriging)插值(适用数学建模竞赛,详解)

适用:数学建模学习中遇到需要进行克里金(Kriging)插值的任务。希望尽快上手,选择出恰当的半函数模型,并获得插值后的图片。 详细步骤: 一、准备数据 在excel中准备需要进行克里金插值的内容,应该包括至少三列:X坐标,Y坐标,数据。在每一列的列首做好标记,方便导入ArcMap后对应。注意存储时存为xls文件。 二、将数据导如导ArcMap 点击下面这个标记,把数据文件添加到ArcMap。 如果是初次使用的化,可能会不知道进入添加数据对话框之后如何操作。这时应该先点击红框标记的图标,连接到文件夹。

east_fence的博客 4万+

C++部分知识点复习(二)

知识点总结

m0_52349838的博客 845

银河麒麟服务器操作系统V10 SP1:跨架构激活与设备更换无忧指南

本文详细解析了银河麒麟服务器操作系统V10 SP1的跨架构激活新特性。该特性彻底解除了授权与CPU架构的绑定,允许同一份授权在x86、ARM、龙芯等不同架构服务器间灵活使用。文章提供了从新设备激活到硬件更换后保持激活状态的全流程实战指南,并分享了内网环境部署等高级技巧,助力企业简化运维、提升硬件资源管理灵活性。

ff678的博客 344

学习笔记:物理信息神经网络(PINN)

PINN 的强大在于它打破了传统数值方法的限制,将神经网络的非线性拟合能力与物理方程的严谨性结合起来。它在处理高维、数据稀缺、复杂物理约束的场景下尤其出色。当然,PINN 也有收敛慢、梯度消失等挑战,比如,复杂 PDE 可能导致梯度传播困难,收敛慢(梯度消失)、于具有快速变化特征的系统,如冲击波,标准 PINN 可能精度不足,需要改进策略,比如自适应采样或多尺度特征提取。但随着研究深入,这些问题正在不断被解决。物理或化学方程为什么往往是偏微分方程?什么是物理信息神经网络(PINN)?x_%7Bi%7D。

qq_52635735的博客 1万+

C++的作用域详细解读

写C++离不开一个重要的概念那就是作用域,作用域是C++语言非常重要的一个概念,接下来我们就一起看看C++的作用域。学好C++作用域必须理解透彻,这样才能用好!

jiexijihe945的博客 4004

STM32F105双路CAN通讯无法进入接收中断问题及解决方法

STM32F105RBT6双路CAN通讯无法进入接收中断问题及解决方法

m0_62383223的博客 3441

C++的作用域、变量作用域、生命周期和变量分类介绍

C++的作用域、变量作用域和变量分类介绍。 变量作用域(Variable Scope)是指变量的生命周期和可见性,也就是变量在程序中的哪些部分可以使用。按照作用域(Scope)变量可分类为全局变量和局部变量。 还可按照生命周期(Lifetime)进行分类变量可分类为静态变量(Static Variables)和成员变量(Member Variables)。

cnds123的专栏 6537

PyTorch实战(26)——PyTorch分布式训练

在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。

盼小辉丶的博客 3793

网口通信实战(C#完整版):基于TCP协议的工业仪表数据采集系统开发

工业现场中80%的智能仪表(压力/温度/液位/流量/数显仪表)、采集模块、测控终端均支持TCP网口通信,这类设备的TCP通信有鲜明的工业特性:基于字节流的自定义二进制协议、一问一答的主从通信模式、对数据完整性/稳定性要求极高。本次实战是纯工业级落地项目,基于C# WinForm + .NET Framework 4.8(工业上位机标配)✅纯原生无依赖:零第三方类库/控件,仅用C#原生,源码可100%复用、无引用冲突、工控机完美兼容;✅双采集模式完美适配:同时实现「单次手动采集」+「连续自动采集」

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1799

C语言学习笔记02 -- 作用域 生命期 运算符 关键字

大程序划分为若干个程序模块,每个模块实现一个特定的功能,这些模块称为子程序,c语言中子程序用函数实现。生命期: 标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段.程序执行中就会创建一个进程(程序的一次执行),计算机会给进程分配cpu与内存空间(用户空间)生存期(生命期) 此阶段程序的执行过程(必须是成功编译链接并生成了可执行文件)作用域: 标识符能够被使用的范围;在栈区中,遇到函数会为其参数分配栈帧,函数结束栈帧也会被回收给系统。判断是否能够整除这个数。

daimeshudaixiong的博客 219

Modbus测试工具ModbusPoll与Modbus Slave使用方法 小白实操记录

Modbus 下面介绍modbus标准协议从站、主站仿真工具;可用于指令下发,数据采集等;是学习、现场运维的好工具。 1 介绍 Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改

码灵的博客 1万+

【C/C++解惑篇】*,**,:: ,&,*&,**&和函数传参-七者详解

【C/C++指针解惑】*,**和&三者详解前言1. C/C++中 * 的用法2. C/C++中 & 的用法3. 函数的参数3.1 函数传入普通参数3.2 函数传入指针参数3.3 引用传入函数参数4. C/C++中 :: 的用法5. C/C++中 ** 的用法6. C/C++中 *&,**& 的用法 前言 最近指针还是容易迷,重新整理学习一下! C语言之所以要起名为“C”,是取的“BCPL”的第二个字母(第一个字母用来命名之前被发明的B语言) 。当C语言发展到顶峰的时刻,出现

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 7056

dolphinscheduler-3.4.0

dolphinscheduler集群部署

docsz的博客 659

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C/C++的作用域详解

作用域描述程序中可访问标识符的区域。 一个C变量的作用域可以是块 作用域、函数作用域、函数原型作用域或文件作用域。 到目前为止,本书程 序示例中使用的变量几乎都具有块作用域。块是用一对花括号括起来的代码 区域。例如,整个函数体是一个块,函数中的任意复合语句也是一个块。定 义在块中的变量具有块作用域(block scope),块作用域变量的可见范围是 从定义处到包含该定义的块的末尾。另外,虽然函数的...

skywf的博客 4723

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Cpp】C和C++混合编程

一、混合编程杂绪 1.1 为什么需要混合编程 Cpp是从C演变过来的,C有很多优秀成熟项目和库,没必要在C++中重写,C++程序可以直接调用调用 庞大项目划分后一部分适合用C(底层),一部分适合用C++(中间层、上层) 1.2 混合编程的支撑 编译型程序的编译过程:源文件->目标(库)文件->可执行程序->镜像文件 任何编程语言执行时都必须是可执行程序,所以都必须先被编译成...

baymaxly的博客 7731

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

「C/C++」C/C++ 之 变量作用域详解

在C++编程中,变量作用域(Variable Scope)是一个非常重要的概念,它决定了变量在程序中的可见性和生命周期。本文将详细介绍C++中的变量作用域,包括全局作用域、局部作用域、块作用域和文件作用域。全局作用域中的变量在程序的任何地方都可以访问,从声明点开始直到程序结束。局部作用域中的变量只能在定义它们的函数或代码块内部访问。关键字实现,即使变量在全局作用域中声明,它也只能在定义它的文件内部可见。文件作用域中的变量只能在声明它们的文件内部访问。块作用域是局部作用域的一种,但它更具体地指的是由花括号。

何曾参静谧的博客 1427

[C/C++] *,**,:: ,&,*&,**&和函数传参详解

即:函数中的a,b,函数中的a,b地址与main()中的地址是一样的。如果函数中的a,b值改变的,那么main()中的a,b的值也跟着改变。函数中a,b的交换是地址的值交换。其实这两个里面的 & 符表示引用,*&表示指针的引用,**&表示指针的指针的引用。函数传入的是形参,不会改变main()中a,b的地址,也就是不会改变a,b的值。修改调用函数中的x和y,会直接影响到主函数中的a和b的值。b是a的指针,指向a的地址,二者指向同一块内存空间(也就是。a与b相连,只要修改*b的值,a的值也跟着改动。

qq_42251157的博客 3857

C/C++中*和&的用法

在C++中*与&的用法的简单总结。

彩虹糖的博客 14万+

【C->Cpp】深度过渡由C迈向Cpp(1)

Cpp入门,由C迈向Cpp,Cpp内定义命名空间的原理

石墨博客 2011

C/C++中&和*的区别详解,以及一些小问题

/ 参数声明为 struct uci_package* &pkg。printf("*ptr的值: %d\n", *ptr);// 使用*访问指针指向的值。// pkg是指向uci_package的指针。// 获取ptr指向的值(解引用)printf("ptr存储的地址: %p\n", ptr);int *ptr = # // 获取num的地址并赋给指针ptr。// 3. pkg的地址 (&pkg),让函数可以修改pkg的值。int *ptr = # // 声明ptr为指向int的指针。

m0_64155347的博客 2863

C++/作用域

https://zh.wikibooks.org/wiki/C%2B%2B/%E4%BD%9C%E7%94%A8%E5%9F%9F#%E5%85%A8%E5%B1%80%E4%BD%9C%E7%94%A8%E5%9F%9F 维基教科书,自由的教学读本 < C++ 跳到导航跳到搜索 作用域(scope)是名字(name)与实体(entity)的绑定(binding)保持有效的那部分计算...

wzq2009的专栏 4112

(C++) 6大作用域

在 C++ core guidelines 中有一个准则:ES.5 保持作用域短小。要遵循这点需要明确作用域到底是什么,有哪些,有什么用。并且 C++ 的作用域和 C语言 的 作用域又大有不同,因此不能直接沿用 C语言 的作用域。但是作用域的本质作用的不变的。作用域是代码中声明的一种属性,它是可见性和生命周期交叉的地方。名字只在它的作用域中可见,但对象的生命周期不一定受限于其名字的作用域。对象具有存储期,存储期决定了对象的生命周期。

cuber-lotus的博客 1110

【C语言】Extern用法--有关cpp与c文件兼容、扩大外部变量作用域等用法的介绍

兄弟萌大家好,我是鸽王Lance。 C语言文件的后缀一般为.c,而C++的后缀为.cpp。这点相信大家都知道。 可笔者在把EasyX函数库给塞进VS2019时,却犯了难:EasyX好像只能在.cpp文件里调用啊! 后来我上网查了下才知道: 由于C++是在C语言基础上发展起来的,故C++兼容C语言的大部分语法,因此,C语言文件保存后缀为.cpp基本没有问题。 请注意,“基本”——这个措辞相当严谨。这意味着,如果不加处理直接将C代码保存为CPP格式,还可能会发生一些兼容性的问题。 如下图: 请看此程序,当输

qq_45695653的博客 950

C++类的概念

/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体(注意类定义结束时后面分号不能省略)类体中内容称为类的成员:类中的变量称为类的属性或成员变量(一般情况下类的成员变量都是私有的,因为不希望有人直接去修改成员变量,一般都是通过成员函数去修改,但是这个不是强制要求的)类中的函数称为类的方法或者成员函数。注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理private:int* a;

2401_86956109的博客 1099
上一篇: Android 智能指针
下一篇: C++中访问控制
计算机与认知
博客等级 码龄14年 31粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值