Классы C ++ - как вернуть вектор пользовательского типа из функции? - PullRequest
3 голосов
/ 18 мая 2011

У меня возникают проблемы при настройке моих функций в классе, когда я хочу, чтобы функция возвращала вектор типа struct, который я только что определил. Компилятор выдает ошибку «Использование необъявленного идентификатора».

В файле .h: (без ошибок)

struct workingPoint;

public:

vector<workingPoint>calculateWorkingPointCloud();

А в файле .cpp:

struct DeltaKinematics::workingPoint {
    int x, y, z;
    //more stuff to come
};

vector<workingPoint> DeltaKinematics::calculateWorkingPointCloud(){ //error here is "Use of undeclared identifier 'workingPoint'

}

Кажется, что компилятор не знает, что такое workingPoint, несмотря на то, что он объявлен перед функцией?

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Это просто проблема поиска.Вам необходимо полностью указать имя, например,
vector<DeltaKinematics::workingPoint> DeltaKinematics::calculateWorkingPointCloud(){...

Я задал похожий вопрос по этому вопросу здесь Может быть, вам это тоже интересно.

3 голосов
/ 18 мая 2011

Вы определили структуру DeltaKinematics::workingPoint, а затем попытались вернуть структуру workingPoint. Вам нужна явная квалификация.

...