C ++ - 类中的静态变量,用于计算已创建的实例,但不会计数

时间:2018-02-26 10:37:47

标签: c++ class static

我是C ++的初学者,需要一些帮助。

我创建了一个名为 shape.h 的头文件,其中有一个名为rectangle的类。 rectangle有一个length,width和一个静态inst_count,每次调用构造函数时都会迭代。

问题是 - 它没有......

这是 shape.h

#ifndef shape_h
#define shape_h

class rectangle
{
    private:
        float length,width;
        static int inst_count;

    public:
        rectangle(float length,float width);
        ~rectangle();
        float get_length();
        float get_width();
        int get_count();
};

int rectangle::inst_count = 0;

rectangle::rectangle(float length,float width)
{
    rectangle::inst_count++;
    rectangle::length = length;
    rectangle::width = width;
}

rectangle::~rectangle()
{
    rectangle::inst_count--;    
}

float rectangle::get_length()
{
    return rectangle::length;
}

float rectangle::get_width()
{
    return rectangle::width;    
}

int rectangle::get_count()
{
    return rectangle::inst_count;   
}

#endif

这是 main.cpp

#include <iostream>
#include "shape.h"

int main(void) 
{
    rectangle *rect = new rectangle(3.0,3.0);

    std::cout << rect->get_count();

    return 0;
}

输出为:

0

为什么?

0 个答案:

没有答案