ProDeveloperTutorial.com

教程和编程解决方案
菜单
  • Shell脚本
  • 系统设计
  • Linux系统编程
  • 4g LTE
  • 编码问题
  • C
  • C ++
  • DSA
  • GIT

C ++第18章:C ++中的静态数据成员,静态成员函数和静态对象

前开发者教程 2020年1月27日

在本章中,我们将研究:

  1. 静态数据成员
  2. 静态成员函数
  3. 静态物体

1.静态数据成员

 

以下是静态数据成员的属性:

  1. “静态”是用于创建静态数据成员的关键字。
  2. 当我们只希望在多个对象之间共享该数据成员的一个副本时,我们想要创建静态数据成员。
  3. 创建第一个对象时,该值将初始化为零。
  4. 范围在班级内
  5. 生命周期一直到程序执行。
  6. 您可以使用范围解析运算符初始化静态数据成员。
  7. You can also access the static variable in main function using scope resolution operator as “ 班级名称 :: static_variable_name”.

 

静态数据成员的示例:

 

#include <iostream>
using namespace std;


class MyClass
{

public:

    static int no_of_objects;

//default constructor

    MyClass()
    {
        no_of_objects ++;
    }

    void get_object_count()
    {
       cout<<"The number of objects are = "<<no_of_objects<<endl;
    }
};

int MyClass :: no_of_objects =0;

int main(void)
{

    cout<<"The number of objects are = "<<MyClass::no_of_objects<<endl;

   MyClass obj_1;
   obj_1.get_object_count();

   MyClass obj_2;
   obj_2.get_object_count();

   MyClass obj_3;
   obj_3.get_object_count();

return 0;

}

输出:

The number of objects are = 0

The number of objects are = 1

The number of objects are = 2

The number of objects are = 3

 

2.静态成员函数

 

以下是静态成员函数的属性:

  1. “ static”是用于声明静态成员函数的关键字。
  2. 静态成员函数中将不存在“ this”指针。
  3. 静态成员函数可以在不创建对象的情况下进行访问。可以使用范围解析运算符来调用它。 “<class_name>::<static_member_function_name> ().
  4. 静态成员函数只能访问静态数据成员和静态成员函数。
  5. 您不能具有相同名称的静态和非静态成员函数。

 

例:

 

#include <iostream>
using namespace std;

class MyClass
{

public:
    static void myFunc()
    {
       cout<<"In myFun function"<<endl;
    }
};

int main(void)
{

   MyClass::myFunc();
return 0;

}

输出:

In myFun function

 

3.静态对象

#include <iostream>
using namespace std;

class MyClass
{

public:

    void myFunc()
    {
        cout<<"In myFun function"<<endl;
    }
};

int main(void)
{

   static MyClass obj;
   obj.myFunc();

return 0;

}

输出:

In myFun function

 

 

该网站上可用的教程列表:

C编程20+章C ++编程80+章
100多个编码问题数据结构和算法85+章
系统设计20+章Shell脚本编写12章
4g LTE 60+章节最常见的编码问题
5G NR 50+章Linux系统编程20+章
分享
电子邮件
鸣叫
领英
Reddit
绊倒
Pinterest的
上一篇文章
下一篇

关于作者

前开发者教程

每天我们都会讨论竞争性编程问题,请加入我们的网站:   电报频道

ProDeveloperTutorial.com

教程和编程解决方案
版权© 2020 ProDeveloperTutorial.com
从以下课程获得热门课程: 教育性的






  1. <acronym id="ZaIhSSW" class="ZOGsupJ"><datalist id="yl2dzPh"></datalist></acronym>



  2. <q class="zhE0BMO"><object id="Wl6MkSA" class="WF7le4s"></object></q>

      <ruby id="TzqUqqT"><input id="necjPex"><dir id="KR0fqi8"></dir></input></ruby>
      <q id="uYoqgmS"><col class="u6M1KT5"></col></q>