gpt4 book ai didi

c++ - 私有(private)成员函数中对非静态成员的非法引用

转载 作者:行者123 更新时间:2023-11-30 00:39:38 26 4
gpt4 key购买 nike

我正在尝试编写一个程序,但我不明白为什么我的私有(private)成员函数无法访问我的私有(private)数据成员。有人会帮忙吗?这是我的功能。 nStocks、capacity、slots[]都是私有(private)数据成员,hashStr()是私有(private)函数。

bool search(char * symbol)
{
if (nStocks == 0)
return false;

int chain = 1;
bool found = false;

unsigned int index = hashStr(symbol) % capacity;

if (strcmp(symbol, slots[index].slotStock.symbol) != 0)
{
int start = index;
index ++;
index = index % capacity;
while (!found && start != index)
{
if(symbol == slots[index].slotStock.symbol)
{
found = true;
}
else
{
index = index % capacity;
index++;
chain++;
}
}
if (start == index)
return false;
}

return true;
}

这是我的 .h 文件的私有(private)成员部分:

private:
static unsigned int hashStr(char const * const symbol); // hashing function
bool search(char * symbol);

struct Slot
{
bool occupied;
Stock slotStock;
};

Slot *slots; // array of instances of slot
int capacity; // number of slots in array
int nStocks; // current number of stocks stored in hash table

如果我可以提供任何其他信息,请告诉我。

最佳答案

您的代码创建了一个名为search 的非成员函数。您需要更改:

bool search(char * symbol)

收件人:

bool ClassName::search(char * symbol)

ClassName 替换为类的名称。

关于c++ - 私有(private)成员函数中对非静态成员的非法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290519/

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