当前位置: 首页 > news >正文

成都网站建设q479185700棒代理网站备案收钱

成都网站建设q479185700棒,代理网站备案收钱,网站中间内容做多大尺寸的,ip地址域名解析目录 1、静态成员变量 2、静态成员函数 3、常函数 4、常对象 当我们使用c的关键字static修饰类中的成员变量和成员函数的时候,此时的成员变量和成员函数被称为静态成员。 静态成员包含: 静态成员变量静态成员函数 1、静态成员变量 静态成员变量有…

目录

1、静态成员变量

2、静态成员函数

3、常函数

4、常对象


当我们使用c++的关键字static修饰类中的成员变量和成员函数的时候,此时的成员变量和成员函数被称为静态成员。

静态成员包含:

  • 静态成员变量
  • 静态成员函数

1、静态成员变量

静态成员变量有着如下几个特点:

  1. 所有对象共享一份数据
  2. 在编译阶段分配内存
  3. 类内声明,类外初始化

需要我们牢记的是,空类的内存空间大小为1,是为了每个空类对象一个独一无二的地址。

当我们在类内声明静态成员变量之后,需要在类外定义静态成员变量:

int Data::m_varA = 10;
int Data::m_varB = 10;

定义多个类对象,打印出不同类对象的同一个静态成员变量,可以很明显看出结论:类对象共享静态成员变量的同一份数据

 对于私有权限下的静态成员变量m_varB,发现在类的外部是无法访问的:

 这说明了:静态成员变量也是有访问权限的。

由于静态成员变量是在编译期间分配的,那么可以不可以通过类名直接访问静态成员变量呢?

实践出真知,运行效果图如下: 

 那么我们就需要记得:静态成员变量有两种访问方式,第一种是通过对象,第二种是通过类名

2、静态成员函数

静态成员函数有着如下的特点:

  • 程序共享一个函数
  • 静态成员函数只能访问静态成员变量

对于第一个特点程序共享一个函数怎么理解,通过案例代码来进行深刻理解:

class Data
{
public:static void func(){cout << "static void func()函数调用" << endl;}
private:};int main(void)
{Data d1;Data d2;d1.func();cout << "d1 -> func()函数的地址为 : " << &d1.func << endl;d2.func();cout << "d2 -> func()函数的地址为 : " << &d2.func << endl;return 0;
}

静态成员变量有着访问权限的限制问题,那对应的静态成员函数也有着同样的访问权限问题:

当我们使用静态成员函数的时候,静态成员函数只能访问静态成员变量,其余变量是无法访问的,从而得出以下结论:静态成员函数只能访问静态成员变量

静态成员函数和静态成员变量一样,也有着两种访问方式通过对象和类名访问

3、常函数

成员函数加const后我们可以称这个函数为常函数,常函数有着如下特点:

  • 常函数内不可以修改成员属性
  • 成员属性声明时加关键字mutable后,在常函数中依然可以修改
class Data 
{
public:Data() {m_A = 0;m_B = 0;}void change() const{this->m_A = 100;}int m_A;mutable int m_B; //可修改 可变的
};

此上述案例代码看起来却似乎没有问题,但是当我们运行的时候会出现报错,因为在常函数里面是不被允许修改成员变量的。如果想要在常函数中修改成员变量,需要在变量前加mutable这个关键字,有了mutable关键字之后,该成员变量就可以在常函数中修改了。

4、常对象

声明对象前加const称该对象为常对象,常对象有着如下特点:

  • 常对象只能调用常函数
class Data 
{
public:Data() {m_A = 0;m_B = 0;//cout << "int m_A = " << m_A << endl;//cout << "mutable int m_B = " << m_B << endl;}void func(){cout << "func()函数调用" << endl;}void change() const{//this->m_A = 100;this->m_B = 100;}int m_A;mutable int m_B; //可修改 可变的
};int main(void)
{//Data d1;//d1.change();//cout << "d1 -> int m_A = " << d1.m_A << endl;//cout << "d1 -> mutable int m_B = " << d1.m_B << endl;const Data d1;//常对象不能修改成员变量的值,但是可以访问//d1.m_A = 100;cout << "const Data d1 -> int m_A = " << d1.m_A << endl;cout << "const Data d1 -> mutable int m_B = " << d1.m_B << endl;//常对象只能使用常函数//d1.func();d1.change();cout << "const Data d1 -> int m_A = " << d1.m_A << endl;cout << "const Data d1 -> mutable int m_B = " << d1.m_B << endl;return 0;
}

http://www.yayakq.cn/news/679758/

相关文章:

  • 微云怎么做网站进不了wordpress
  • 网站代备案多少钱中国各省旅游网站建设分析
  • 做淘宝客网站推广被骗网站建设与网页设计可行性分析报告
  • 网站模板 哪家好徐州网络科技公司有哪些
  • 网站建设 事迹刚做的婚恋网站怎么推广
  • 网站专题报道页面怎么做的央美老师做的家具网站
  • 做那个类型的网站赚钱wordpress怎么修改导航
  • 广州分销商城开发北京seo排名厂家
  • 做网站和域名wordpress企业建
  • 郑州制作网站推荐建设银行义乌分行网站
  • 郑州最好的建站公司本地装修网
  • 江西网站建设公司费用深圳设计公司排名深圳市广告公司
  • 诸城做网站的公司网站建设网站制作需要多少钱
  • 网站上传的图片怎么做的清晰度在线设计网站可以做ps和ppt
  • 广州网站制作设计公司卖钢材做哪个宣传网站
  • 上海哪里可以做网站企业官方网站怎么查
  • 网站制作软件 aws中国做的比较好的网站设计公司有哪些
  • 定州网站建设电话搜索不到的网站
  • 网站建设案例 优帮云石家庄建立网站的公司
  • 网站更改海口注册公司代理公司地址电话
  • asp网站的配置海城市网站建设
  • 免费网站模块网站建设策划书主要内容
  • 招聘网站怎么做seo公司做网站有用吗
  • 厚街响应式网站建设深圳建设网站培训机构
  • 高性能的网站建设指南网站设计定做
  • 邯郸哪里可以学建网站做网页网站怎么样
  • 网站分为哪几种类型百度seo规则
  • 上海网络营销策划网络营销seo是什么
  • 医院网站建设方案大全广告店名大全集
  • 东莞企业网站搭建制作婚恋网站 模板