当前位置: 首页 > 编程笔记 >

在C ++中定义静态成员

连坚白
2023-03-14
本文向大家介绍在C ++中定义静态成员,包括了在C ++中定义静态成员的使用技巧和注意事项,需要的朋友参考一下

可以使用static关键字定义C ++中类的静态成员。内存中只有静态类成员的一个副本,而不管该类的对象数目如何。因此,静态成员由所有类对象共享。

如果没有以任何其他方式初始化该类的第一个对象,则在创建该类的第一个对象时,该静态类成员将初始化为零。

演示静态类成员定义的程序如下:

示例

#include <iostream>
using namespace std;

class Point{
   int x;
   int y;

   public:
   static int count;

   Point(int x1, int y1){
      x = x1;
      y = y1;

      count++;
   }

   void display(){
      cout<<"The point is ("<<x<<","<<y<<")\n";
   }
};

int Point::count = 0;

int main(void){
   Point p1(10,5);
   Point p2(7,9);
   Point p3(1,2);

   p1.display();
   p2.display();
   p3.display();

   cout<<"\nThe number of objects are: "<<Point::count;

   return 0;
}

上面程序的输出如下-

The point is (10,5)
The point is (7,9)
The point is (1,2)

The number of objects are: 3

现在让我们了解上面的程序。

Point类具有2个构成点的数据成员x和y。还有一个静态成员计数,用于监视Point类创建的对象数。构造函数Point()初始化x和y的值,然后函数display()显示它们的值。显示此的代码段如下-

class Point{
   int x;
   int y;

   public:
   static int count;

   Point(int x1, int y1){
      x = x1;
      y = y1;

      count++;
   }

   void display(){
      cout<<"The point is ("<<x<<","<<y<<")\n";
   }
};

在该函数中main(),创建了3个Point类的对象。然后通过调用函数显示这些对象的值display()。然后显示计数值。显示此的代码段如下-

Point p1(10,5);
Point p2(7,9);
Point p3(1,2);

p1.display();
p2.display();
p3.display();

cout<<"\nThe number of objects are: "<<Point::count;
 类似资料:
  • 主要内容:1、静态属性,2、静态函数在 C# 中,我们可以使用 static 关键字声明属于类型本身而不是属于特定对象的静态成员,因此不需要使用对象来访问静态成员。在类、接口和结构体中可以使用 static 关键字修饰变量、函数、构造函数、类、属性、运算符和事件。 注意:索引器和析构函数不能是静态的。 若在定义某个成员时使用 static 关键字,则表示该类仅存在此成员的一个实例,也就是说当我们将一个类的成员声明为静态成员时,无论创

  • 本文向大家介绍C++中静态成员函数与静态成员变量(static ),包括了C++中静态成员函数与静态成员变量(static )的使用技巧和注意事项,需要的朋友参考一下 C++中静态成员函数与静态成员变量(static ) 这篇介绍了静态成员函数与静态成员变量,是我的读书笔记,我希望它够简短但又比较全面,起到复习的作用。如果有一些C++知识记不清楚了,它可以帮你很快回忆起来。 复习C语言的stati

  • 本文向大家介绍C ++中的静态成员函数,包括了C ++中的静态成员函数的使用技巧和注意事项,需要的朋友参考一下 在上一篇文章中,我们讨论了C ++中的静态数据成员,并讨论了可以通过成员函数访问静态数据成员,但是该函数应该是静态成员函数 静态成员函数是一种特殊的成员函数,仅用于访问静态数据成员,其他任何常规数据成员均无法通过静态成员函数访问。就像静态数据成员一样,静态成员函数也是类函数。它不与任何类

  • 在类中,static 除了可以声明 静态成员变量,还可以声明静态成员函数。普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员。 编译器在编译一个普通成员函数时,会隐式地增加一个形参 this,并把当前对象的地址赋值给 this,所以普通成员函数只能在创建对象后通过对象来调用,因为它需要当前对象的地址。而静态成员函数可以通过类来直接调用,编译器不会为它增加形参 th

  • 主要内容:几点说明 对象的内存中包含了成员变量,不同的对象占用不同的内存(已在《 C++对象的内存模型》中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。例如有两个相同类型的对象 a、b,它们都有一个成员变量 m_name,那么修改 a.m_name 的值不会影响 b.m_name 的值。 可是有时候我们希望在多个对象之间共享数据,对象 a 改变了某份数据后对象 b 可以检测到。共享数据的典型使

  • C++ 类 & 对象 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。 静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进