【问题标题】:Error with Dynamic Array动态阵列错误
【发布时间】:2015-05-25 00:53:19
【问题描述】:

我正在尝试创建一个具有在运行时确定大小的数组的类。但是,当我尝试访问“addToSet”函数中的数组时,我收到“未声明的标识符错误”。任何帮助,将不胜感激。我是 C++ 新手。

头文件:

class ShortestPathSet
{
private:
    //Variables
    int *pathSet;

public:
    //Variables

    int size;


    //Constructor
    ShortestPathSet(int numVertices);

    //Functions
    void addToSet(int vertice, int distance);

};

类文件:

#include "ShortestPathSet.h"

using namespace std;

ShortestPathSet::ShortestPathSet(int numVertices)   
{
    size = numVertices;
    pathSet = new int[numVertices];
}

void addToSet(int vertice, int distance)
{
    pathSet[vertice] = distance;
}

【问题讨论】:

    标签: c++ arrays dynamic dynamic-allocation


    【解决方案1】:

    你在这里缺少类名:

    void addToSet(int vertice, int distance)
    

    你的意思是:

    void ShortestPathSet::addToSet(int vertice, int distance)
         ^^^^^^^^^^^^^^^^^
    

    按原样,您正在声明和定义一个完全不相关的函数,并且在该函数的范围内没有这样的变量 pathSet - 因此是未声明的标识符。

    旁注,您可能不想将size 设为公共成员变量。

    【讨论】:

    • 那么,即使使用“命名空间标准”我仍然必须包含这个?还有,非常感谢!!
    • @KarlTaht 这与namespace std 无关。为了在类定义之外定义类成员函数,您需要使用类名对其进行限定。
    • 我不应该使用类的头文件来简化事情吗?
    • @KarlTaht 不,只需要学习在源文件中编写类定义的正确语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多