C++ 不理解本例中指针和类是如何协同工作的

C++ 不理解本例中指针和类是如何协同工作的,c++,arrays,class,pointers,dereference,C++,Arrays,Class,Pointers,Dereference,嗯,我在这个问题上被难住了,使用Visual Studio 2012,我的项目只剩下一个错误,我非常想测试一下。是的,它是C++类的,我希望我能发布足够的代码。p> 我得到一个错误: employeePtrList.at(i)->writeData(outputEmployee); ->writeData左侧的C2227必须指向class/struct/union/generic类型 在上一个项目中,这一行包含指针数组的元素(我假设是Employee*指针),其工作原理如下: Emplo

嗯,我在这个问题上被难住了,使用Visual Studio 2012,我的项目只剩下一个错误,我非常想测试一下。是的,它是C++类的,我希望我能发布足够的代码。p> 我得到一个错误:

employeePtrList.at(i)->writeData(outputEmployee);
->writeData左侧的C2227必须指向class/struct/union/generic类型

在上一个项目中,这一行包含指针数组的元素(我假设是Employee*指针),其工作原理如下:

Employee* myEmployees[MAX_EMPS];
...
myEmployees[i]->writeData(outputEmployee);
所以我实现了Employee*的向量,并假设它还包含指针:

MyVector<Employee*> employeePtrList;
随后在程序中,这一行给出了错误:

employeePtrList.at(i)->writeData(outputEmployee);
我尝试过各种方法,如果我只是为了好玩而用*(employeePtrList)取消对它的引用,它会改变intellisense错误,但我仍然得到相同的结果:

->writeData左侧的C2227必须指向class/struct/union/generic类型

有什么想法吗?让我感到困惑的是,employeePtrLIst是一个员工指针,所以它可能在错误的类中寻找?我想也许我没有正确地“指向”MyVector类中的函数


谢谢

我不知道MyVector是如何工作的,乍一看有几件事可能会出错:

.at()
可能返回对对象的引用(甚至是对象的副本),因此需要使用
操作符


另一种可能性是,如果
.at()
返回类型为
Employee*
的迭代器,您可能需要取消对迭代器的引用(即
(*employeePtrList.at(i))->writeData(outputEmployee);
),具体取决于实现。

employeePtrList.at(i)返回什么?如果您从理论上问,我假设有一个指向Employee类的指针,实际上它不会运行。我想我需要弄清楚如何形成它,以便它从成员函数所在的MyVector类返回一些东西?什么是MyVector?它真的是一个带有.at函数的向量吗?将您的示例缩小到演示问题的最小可运行代码,然后发布。您甚至可能在执行此操作时发现问题。它是一个以.at作为成员函数的类,是的。它就像一个带有push_-back函数以及getter和setter的向量。谢谢Qix,你也做对了,非常好的信息!我还没来得及投票(羞耻地笑着说)嘿@provoutah-只要让你知道,如果答案对你有帮助,欢迎你接受!