我需要计算我的公共成员函数在循环中创建新数据的次数。 每次读取数据时,它都会保存到私有成员中。什么都没有被覆盖。
// 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;)一起使用。
答案 0 :(得分:1)
这一行:
static void myMemberCounter;
应该生成编译时错误。它看起来像一个变量,但是类型为void
,这没有意义。
如果你想要一个静态(“类变量”)计数器,你应该使用类似int
的类型。然后,通过在构造函数中递增计数器,类很容易使用该计数器来计算实例数。外部世界可以通过添加public
类函数来返回它来计数。