标签:call height tag get 创建 oid 构造函数 public 总数
当一个属性、方法被static修饰的时候,就叫做类属性、类方法,又叫做静态属性、静态方法 。
没有被static修饰的属性,就叫对象属性、对象方法,又叫实例属性、实例方法和非静态属性、非静态方法。
当一个属性被声明成类属性,那么所有的对象,都共享一个值,所有对象都可以修改这个值,一经修改前面的值将会被丢弃。
而对象属性,每个对象的对象属性的值都互不影响,修改一个对象的对象属性,另一个对象的对象属性不变。
#include <iostream>
using namespace std;
class Box
{
public:
Box(int x,int y,int z):length(x),breadth(y),height(z)
{
cout <<"Constructor called." << endl;
// 每次创建对象时增加 1
Box::objectCount++;
}
double Volume()
{
return this->length * this->breadth * this->height ;
}
static int getCount()
{
return Box::objectCount;
}
private:
static int objectCount;
// 构造函数定义
double length; // 长度
double breadth; // 宽度
double height; // 高度
};
// 初始化类 Box 的静态成员,注意初始化时不加static
int Box::objectCount = 0;
int main(void)
{
// 在创建对象之前输出对象的总数
cout << "Inital Stage Count: " << Box::getCount() << endl;
Box Box1(3.3, 1.2, 1.5); // 声明 box1
Box Box2(8.5, 6.0, 2.0); // 声明 box2
// 在创建对象之后输出对象的总数
cout << "Final Stage Count: " << Box::getCount() << endl;
return 0;
}
标签:call height tag get 创建 oid 构造函数 public 总数
原文地址:https://www.cnblogs.com/liuchenxu123/p/12500162.html