首页 > 编程语言 >C++学习——类当中static关键字的作用

C++学习——类当中static关键字的作用

时间:2024-08-29 15:38:46浏览次数:6  
标签:String color Car Toyota C++ 关键字 static totalCars

一、类和对象

我们知道类是“行为”和“属性”的集合,我们可以通过类来实例化对象,从而定义对象的“行为”和“属性”。比如:

class Car
{
	String brand;
	String license;
	String color;
}

Car Toyota;

这里定义了“Car”的类,通过“Car”这个类实例化了“Toyota”。那么类当中的所有属性都是Toyota的。

二、static关键字的作用

class Car
{
public:
	String brand;
	String license;
	String color;
	static int totalCars;	//静态变量,所有对象共享
}

Car Toyota;
Car Benz;

这里我实例化了2个对象,分别是“Toyota”和“Benz”,他们共同都拥有上述的三个属性(变量)“brand”、“license”、“color”,只是共享属性的定义。
不过我有定义了静态变量“totalCars”,这个变量是所有实例所共有的,即所有实例之间不仅共享“totalCars”的定义,还共享它的值。

class Car 
{
public:
    String brand;
    String license;
    String color;
    static int totalCars;  // 静态变量,所有对象共享
};

int Car::totalCars = 0;

int main() 
{
    Car Toyota;
    Car Benz;
    Benz.totalCars ++;
    Toyota.totalCars ++;

    cout << "Total cars: " << Car::totalCars << endl;  // 输出: Total cars: 2

    return 0;
}

这里对2个对象的属性“totalCars”进行自增,再对其进行输出,结果为2。
证实了前面的说法。

标签:String,color,Car,Toyota,C++,关键字,static,totalCars
From: https://www.cnblogs.com/Vsonic12138/p/18386819

相关文章

  • C++学习——访问修饰符
    一、类是什么类是C++当中的一个集合,定义了“属性”,通过类可以实例化对象,此时对象的属性就囊括在这个类当中。比如:classstudent{public: stringName; intages; stringgender}studentXiaoMin;上述代码定义了一个student类,并且通过这个类实例化了对象XiaoMin,XiaoMin......
  • C++火车头修订版
    #pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pragmaGCCoptimize("-fgcse")#pragmaGCCoptimize("-fgcse-lm")#pragmaGCCoptimize("-f......
  • 学习笔记3——栈(C++版)
     接下来教大家如何实现一个栈,我们采用单链表的形式。其实说白了就是给单链表写个入栈和出栈的函数就好了。和上一篇文章说的一样,这里说的栈和stack容器是不一样的。如何实现栈1.定义链表节点structStackNode{DataTypeval;ListNode*next;ListNode(DataTy......
  • 学习笔记2——队列(C++版)
    注意了,这里说的队列并不是STL容器库里面的queue。像链表、队列、栈、二叉树其实是一种数据结构,而vector、queue、set等是容器,是不同的概念。队列的实现可以有很多方式,可以用结构体内储存数组来实现,也可以用结构体内储存结构体来实现,我们这里选择后者。如何实现一个队列1.......
  • C++ 设计模式——桥接模式
    C++设计模式——桥接模式C++设计模式——桥接模式1.主要组成成分2.逐步构建桥接模式步骤1:创建实现接口步骤2:实现具体实现类步骤3:创建抽象类步骤4:实现扩展抽象类步骤5:客户端使用3.桥接模式UML图UML图解析4.桥接模式的优点5.桥接模式的缺点6.桥接模......
  • c++数组挑战-字符环
    题目描述:有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串 ABCEFAGADEGKABUVKLM 的首尾连在一起,构成一个环;字符串 MADJKLUVKL 的首尾连在一起,构成一个另一个环; UVKLMA 是这两个环的一个连续公共字符串。时间限制:1 s内存限......
  • 用c/c++做一个扫雷游戏
    “扫雷”想必80 90年代的都不陌生吧,是当代青年人机必备的益智游戏,今天,我们就用c/c++还原它,记得点赞支持一下,老乔谢谢你们~使用演示设备:1.开发环境 visualstudio2022 或 devc++2.演示系统Windows103.演示课目扫雷游戏效果展示(演示图):上代码:#include<stdio......
  • AirSlam C++ 代码学习
    问题1:reserve函数是什么?reserve是C++标准库中std::vector类的一个成员函数,用于预留一定数量的内存空间,以避免在向量增长时频繁进行内存分配和复制操作,从而提高性能。具体来说,reserve(n)会为向量预留至少n个元素的内存空间,但不会改变向量的大小(即不会添加任何元素)。这......
  • PHP8面向对象快速入门三 类的继承 类方法属性重写和final关键字 parent调用父类的方法
    在PHP中,类的继承(继承)是一种机制,允许一个类继承另一个类的属性和方法,从而实现代码的重用和扩展。继承可以帮助你创建一个基于现有类的新类,保留原有类的特性并增加或修改其功能。classAnimal{public$name='dongwu';protected$age=1;private......
  • 5 Python的变量、关键字、命名规则、基本数据类型及类型转换
    本文是Python系列教程第5篇,完整系列请查看Python专栏。1定义变量在Python中定义变量非常简单,你只需要给变量赋值即可。Python会自动检测变量的数据类型。下面是一些基本的例子来展示如何定义不同类型的变量:1.1整数age=251.2浮点数height=1.751.3字......