某些函数在编译时会忽略类变量和标头中的函数

Class variables and a function from header are ignored by some functions while compiling

本文关键字:函数 类变量 编译      更新时间:2023-10-16

我必须编写一个类,但我遇到了对我来说没有多大意义的错误。链接到我的代码和我收到的错误消息。

我已经在头文件中声明了私有变量和函数,但一些函数看不到变量,其中一个函数在.cpp.中也看不到

确切地说:int sizeCounter不能被void transportValues()void putValue()看到,但可以被void size()void isEmpty()void enqueue()看到。此外,void swapValues()给出"未找到标识符"错误,即使它是在标头中声明的。

我尝试过但没有成功:
sizeCounterswapValues从私有移动到公共
将可以看到sizeCounterswapValues的函数从私有移动到公共
请一些有经验的人帮忙。

我所尝试和做的工作:
在.cpp中为swapValues创建函数原型。
swapValues移动到.cpp中的putValue之上(即使我从标头中删除了声明,这也有效)。

我没有尝试过的:
要求某人编译代码,以显示错误是否是由我的编译器引起的。

我使用的是Visual Studio 2008,BTW.操作系统:Win 7(x64)。

如果你在代码中发现任何与此无关的其他错误,请考虑无需更正我的错误。

提前谢谢。

对于类外定义,您应该在标识符之前添加类名,使用

void HeapPriorityQueue::putValue(string value, string* arr)

而不是

void putValue(string value, string* arr)