gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:33:40 31 4
gpt4 key购买 nike

我需要计算我的公共(public)成员函数在循环中创建新数据的次数。每次读取数据时,它都会保存到一个私有(private)成员变量中。没有任何内容被覆盖。

// 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 与赋值运算符 (=) 或二元插入运算符 (<<) 一起使用.

最佳答案

这一行:

static void myMemberCounter;

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

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

关于c++ - 静态公共(public)成员函数 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708573/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com