技术标签: C++
好久不见,最近忙着各种事,博客发的少。最近快要期末考试了,C++ 的一些语法细节我们继续在博客中讨论。今天要讲的是C++ 中的类变量与类方法 ,也就是所谓的类中的静态变量以及静态函数。
**
**
说实话,语法基础好的同学一听“静态”二字就有感觉了。我们知道,内存分为四区 ,分别是 栈区 堆区 数据段 代码段 。但凡是静态的变量,不管是全局静态变量还是局部静态变量还是我们门今天要讲的类变量(类中的静态变量)都是存放在内存的数据段的。类变量很好理解,即属于该类(所有对象共享)的变量 。下面我们来看几个例子,注意为了读者便于理解,代码不使用面向对象的封装原理。所以用struct而不是class.
#include<iostream>
using namespace std;
struct Temp{
public:
int a;
int b;
static int x;
};
int Temp::x=0;//注意,这句话是给类变量的初始化,必须要写
int main()
{
Temp temp1,temp2;
temp1.x=333;
temp2.x=444;
cout<<temp1.x<<endl;
cout<<temp2.x<<endl;
return 0;
}
结果打印出来是什么呢?哈哈哈 ,是
444
444
现在 读者明白 什么是类中的静态变量了吧。就是 该类所有的,该类的所有对象所公用一个的,就是类中的静态变量。而成员变量是没对对象 都有一堆自己的成员变量。
实际上 上述代码我们可以改成这样,读者就更加明白什么是“类的”什么是“对象的”
#include<iostream>
using namespace std;
struct Temp{
public:
int a;
int b;
static int x;
};
int Temp::x=0;//注意,这句话是给类变量的初始化,必须要写
int main()
{
Temp temp1,temp2;
temp1.x=333;
temp2.x=444;
cout<<Temp::x<<endl;
return 0;
}
更夸张的是,你还可以这样:
#include<iostream>
using namespace std;
struct Temp{
public:
int a;
int b;
static int x;
};
int Temp::x=0;//注意,这句话是给类变量的初始化,必须要写
int main()
{
Temp::x=13;
cout<<Temp::x<<endl;
return 0;
}
13
哈哈,是的,就算类没有实例化对象,类变量依旧存在。
关于类中的静态成员函数,我们暂时只知道,类中的静态成员函数只能操作类中的静态变量即可。
巴菲特抛售中石油,有分析师认为是股神不了解中国国情,巴菲特坦率地承认:“我不了解A股。”石仁坪巴菲特为何在国际油价创新高的背景下,反而减持获益颇丰的中石油?这就是价值投资者的反周期理念。从11月5日上市交易至今,中国石油(行情 股吧)(601857.SH)A股一路高开低走,从48元的高位已经下跌了近20%。沃伦·巴菲特先生会在美国内希拉斯加州的奥马哈小镇上为抛售中石油鼓掌吗?
构筑测试体系自测试代码的价值测试框架添加更多测试自测试代码的价值程序员编写代码只占非常小的部分时间, 另一些时间花在设计上,最多的则是用来调试。确保所有测试都完全自动化,让他们检查自己的测试结果一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需的时间撰写测试代码的最佳时机是在开始编程之前,添加特性之前,先写相应测试代码测试框架JUnit单元测试和功能测试单元测试,高度局部化,目的为了提高程序员的生产率。功能测试,专门的QA部门,黑盒测试,从客户的角度保障质量。每当你
1. 常见概念在合理应用缓存前,需要了解缓存领域里相关的几个常用术语:1)缓存命中:表示数据能够从缓存中获取,不需要回源;2)Cache miss:表示没有命中缓存,如果缓存内存中还有内...
国内镜像源有很多,阿里云的不错,选择一个好的镜像源加快Centos7系统的更新升级或者安装软件的速度吧!以下方法来自网络,亲测有效。 备份原来的yum源# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 设置aliyun的yum源# wget -O /etc/yum.rep...
一个轻量级的cookie 插件,可以读取、写入、删除 cookieGitHub 访问地址 : https://github.com/carhartl/jquery-cookie首先包含 jquery 的库文件,在后面包含 jquery.cookie.js 的库文件 :使用方法1> 新添加一个会话 session cookie$.cookie('n
两台主机均安装ssh工具,并且已经修改文件中为。并且ssh可以访问终端,但是scp传送文件时提示在执行类似于(log 是文件夹)命令仍需要输入三次密码,并且每次都是提示,最后连接失败。字面意思就是权限不够,此时我们就需要更改权限:然后再重新执行语句就可以了。https://blog.csdn.net/u012318074/article/details/74360416...
示例效果图:1、开通COS对象存储服务腾讯云COS官网地址:https://cloud.tencent.com/product/cosPS:建议选择使用七牛云,七牛云是完全免费的;腾讯云COS有半年免费50G的存储服务,但腾讯云的流量是收费的,每天都给你发扣费短信,真是烦死人 ; 阿里云的OSS或者华为云的OBS都要收费(不推荐)。2、创建密钥自定义域名的教程,...
1 安装createrepo程序包[[email protected] ~]# yum install -y createrepo2 创建相关目录[[email protected] ~]# mkdir /yum/repo -p3 上传rpm包文件到repo目录[[email protected] ~]# ls /yum/repo/cpp-4.8.5-39.el7.x86_64.rpmgcc-4.8.5-39.el7.x86_64.rpmgcc-c++-4.8.5-39.el7.x86_64.rpmgcc-gfortr
前言:本文章主要讲解使用matlab对双目摄像头进行标定,转载请标明作者和来源,谢谢。一、工具:1、MATLAB2015b2、工具箱下载地址:http://www.vision.caltech.edu/bouguetj/calib_doc/二、标定过程:(一)单目标定(单个摄像机分别标定)1、将标定工具箱解压并放至MATLAB目录下,目录如下:H:\matlab\matla...
TB-RK3399pro开发板上引出了通用IO口,位于40pin针脚中间,如图所示:用表笔测量GPIO0_A5、GPIO0_A6上面的电压,均为低电平,现将GPIO0_A6设置为高电平输出。查询参考寄存器手册Address Maping部分:GPIO0基地址为0xFF720000 DDR(方向寄存器)偏移地址0x0004, 所以寄存器地址为0xFF720004 DR(设置高低...
您所在位置:网站首页 > 海量文档&nbsp>&nbsp高等教育&nbsp>&nbsp实验设计【推荐】人工神经网络实验报告(含MATLAB代码).doc11页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。...