我得到了成员变量'objectCount'的限定错误。编译器还返回'ISO C++禁止非常量静态成员的类内部初始化'。 这是主类:非常量静态成员变量的C++初始化?
#include <iostream>
#include "Tree.h"
using namespace std;
int main()
{
Tree oak;
Tree elm;
Tree pine;
cout << "**********\noak: " << oak.getObjectCount()<< endl;
cout << "**********\nelm: " << elm.getObjectCount()<< endl;
cout << "**********\npine: " << pine.getObjectCount()<< endl;
}
这是树类,其中包含非const静态objectCount:
#ifndef TREE_H_INCLUDED
#define TREE_H_INCLUDED
class Tree
{
private:
static int objectCount;
public:
Tree()
{
objectCount++;
}
int getObjectCount() const
{
return objectCount;
}
int Tree::objectCount = 0;
}
#endif // TREE_H_INCLUDED
有是未在任何建议答案中的提到的另一替代写这段文字的时间,它可以让你把所有的东西都保存在一个单一的标题**中。看看[这个SO答案](http://stackoverflow.com/a/33618854/3041008)中的例子,它完美地映射到你的例子。 – mucaho