我是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
为什么?