一、类和对象
我们知道类是“行为”和“属性”的集合,我们可以通过类来实例化对象,从而定义对象的“行为”和“属性”。比如:
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。
证实了前面的说法。