静态公共成员函数(C ++)

时间:2009-04-02 06:52:34

标签: c++

我需要计算我的公共成员函数在循环中创建新数据的次数。 每次读取数据时,它都会保存到私有成员中。什么都没有被覆盖。

// my classType.h
const int ImpliedIndex = 1000;

class classType
{
private:
  char privateMember[ImpliedIndex];
  char privateMember2[ImpliedIndex];
public:
  static void myMemberCounter;
  void printMyInformation():
  void mySupplier(const char[] );
  ...
};

//classType.cpp
int globalCounter = 0;

void classType::printMyInformation()
{
   ...
   cout << privateMember << endl;
   cout << globalCounter++ << endl;
}
void classType::mySupplier( const char buff[] )
{
   strcpy( privateMember, buff );

}

// The main should clear things up a bit.
// main.cpp

int main()
{
    while ( !inFile.eof() )
    {   
        for ( int x = 0; x < 20; x++ )
        {
       // do file I/O here
       // save each line of file into an temp array
       // supply temp array with a routine defined in myClass
       // re-use temp array until we run out of file
        }
    }    
//close file

我需要将20变为变量。请注意,在classType中,我使用globalCounter来检索类型的数量。

我想做的是globalCounter = memberCounter;

但我必须重新声明这两个变量,并且我不能将myClass[ImpliedIndex].memberCounter与赋值运算符(=)或二进制插入运算符(&lt;&lt;)一起使用。

1 个答案:

答案 0 :(得分:1)

这一行:

static void myMemberCounter;

应该生成编译时错误。它看起来像一个变量,但是类型为void,这没有意义。

如果你想要一个静态(“类变量”)计数器,你应该使用类似int的类型。然后,通过在构造函数中递增计数器,类很容易使用该计数器来计算实例数。外部世界可以通过添加public类函数来返回它来计数。