从其成员函数访问类的std :: vector数据成员

时间:2011-08-26 08:59:20

标签: c++

我有一个类,它在头文件(.hpp)中定义了以下成员:

public :
  int loadData(char* filename);

private :
  std::vector<vertex> vertices;
  std::vector<triangle> triangles;
  std::vector<frame> frames;

vertextriangleframe是此头文件中包含的另一个头文件中定义的结构。

现在,在.cpp中函数loadData的定义中,我无法访问成员verticestrianglesframes。例如,我有以下代码导致其下显示错误:

cout << "total vertices stored= " << vertices.size() << endl;

motionViewer.cpp:59: error: 'vertices' was not declared in this scope

为什么我无法访问这些成员?

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

盲目注意:因为你忘记将类名放在.cpp中的loadData-method之前:

int className::loadData(char* filename)

但是要确保您需要显示更多代码。

答案 1 :(得分:2)

可能你忘了在cpp文件中使用(class)范围。

像:

void motionViewer::loadData(char* filename)
{
    // ...
}

假设班级名称为motionViewer

答案 2 :(得分:2)

您确定没有错过::吗?在cpp:

#include "header_name.h"

ClassName::loadData( ..
//...

答案 3 :(得分:0)

  1. 在另一个名称空间中定义你的结构吗?
  2. 您是否错过了函数定义的类范围?
  3. 你是否正确定义了你的结构(比如没有错过尾部分号)?