非法使用此类型作为表达式

时间:2012-02-26 13:08:29

标签: c++

class dataReader{
private:
    ifstream gfxDataFile;
    int numVertices;
    vector<*vertexData> vertices;
public:
    dataReader();
    dataReader(string file);
    ~dataReader();
    string getLine();
    int numberOfVertices();

};

带向量的行给出了错误

vertexData:非法使用此类型作为表达式,任何帮助人员?

继承了vertexData的定义

class vertexData{
private:
    float x;
    float y;
    float z;
public:
    vertexData();
    vertexData(float gx, float gy, float gz);
    ~vertexData();
    float getX();
    float getY();
    float getZ();
};

2 个答案:

答案 0 :(得分:2)

*vertexData应为vertexData*

*放在左边意味着,“尝试取消引用以下表达式” - 当然,后面的内容并不是一个有效的表达式(尽管如果你有其他问题试图在模板参数列表中使用表达式...)。声明指针类型时,*位于类型名称的右侧。

答案 1 :(得分:2)

在类型后面写*

vector<*vertexData> vertices;  //wrong syntax
vector<vertexData*> vertices;  //correct syntax

作为旁注,我认为你不需要一个指针向量。

你为什么不用这个:

vector<vertexData> vertices;