21xrx.com
2024-12-27 21:26:54 Friday
登录
文章检索 我的文章 写文章
C++中的实例与静态变量详解
2023-06-22 00:15:05 深夜i     --     --
C++ 实例变量 静态变量 成员函数

C++作为一门面向对象的编程语言,对于变量的使用有很多不同的方式。其中,实例变量和静态变量是较为常见的两种方式。那么这两种变量有什么区别呢?本文将为您详解C++中的实例与静态变量。

1. 实例变量

实例变量就是指声明在类中的非静态变量,也就是说每个对象都拥有自己的实例变量。实例变量通常用于声明对象的属性,比如人类的姓名、性别、年龄等。在类中声明实例变量的语法如下:


class Person

public:

  string name;

  string gender;

  int age;

;

在类中声明实例变量时不能对其进行初始化,需在构造方法中对其进行初始化。


class Person{

public:

  string name;

  string gender;

  int age;

  Person(string n,string g,int a)

    name = n;

    gender = g;

    age = a;

  

};

2. 静态变量

静态变量又称为类变量,是声明在类中,但在对象创建前就已被申请,所有对象共享同一块内存空间的变量。也就是说,无论创建多少个对象,它们都只会共享一个静态变量。静态变量通常用于记录类的属性,比如人类的总数量、公司的流水号等。在类中声明静态变量的语法如下:


class Company

public:

  static int serial_number;

;

int Company::serial_number = 0; //在类外定义并初始化静态变量

需要注意的是,在定义静态变量时需要在类外进行定义和初始化。因为静态变量与对象无关,所以不属于任何一个对象。同时,静态变量不需要通过对象才能调用,直接使用类名.静态变量名即可。


cout << "公司流水号为:" << Company::serial_number << endl;

3. 实例变量与静态变量的区别

从上面的介绍可以看出,实例变量和静态变量在使用上有很大的不同。主要的区别如下:

- 存储位置:实例变量存储在对象中,每个对象都有独立的内存空间;静态变量存储在类中,所有对象共享同一块内存空间。

- 初始化:实例变量需在构造方法中进行初始化;静态变量需在类外进行定义和初始化。

- 生命周期:实例变量的生命周期与对象相同,对象被销毁时实例变量也会被销毁;静态变量的生命周期与程序相同,程序结束时静态变量才会被释放。

- 调用方式:实例变量需通过对象进行调用;静态变量可以通过类名或对象进行调用。

4. 总结

在C++中,实例变量和静态变量都是比较常见的变量使用方式。实例变量主要用于记录对象的属性,每个对象都有自己的独立内存空间;静态变量主要用于记录类的属性,所有对象共享同一块内存空间。使用时需要根据实际情况进行选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复