臭名昭着的“功能”未在此范围内声明

时间:2012-06-07 11:13:56

标签: c++ oop header scope

我知道这已被问过很多次,但我无法理解这个问题。这是我的头文件:

#ifndef TASK_H
#define TASK_H

#include "storage_adaptors.hpp"
#include <boost/numeric/ublas/vector.hpp>

class Task {
private:
    boost::numeric::ublas::vector<double> taskPosistionConstraint;
    boost::numeric::ublas::vector<double> initialPosition;
    boost::numeric::ublas::vector<double> finalPosition;
    double pathLength;
    int taskType;

public:
    Task();
    Task(double* _initialPoint, double* _finalPoint, int type);
    double getLength();
    int getTaskType();

    ~Task();
};

#endif  /* TASK_H */

这是cpp文件:

#include "Task.h"


const int TASK_SIZE = 3;

Task::Task() {
}

Task::~Task() {
}

Task::Task(double* _initialPoint, double* _finalPoint, int type) {

    finalPosition = make_vector_from_pointer(TASK_SIZE,_finalPoint);
    initialPosition = make_vector_from_pointer(TASK_SIZE, _initialPoint);

}

错误发生在make_vector_from_pointer中定义的storage_adaptors.hpp函数中,Task.h包含在boost hpp file {{1}}中。 如果标题被添加到类头文件中,为什么我超出范围错误:

  

Task.cpp:21:错误:未声明`make_vector_from_pointer'   这个范围

1 个答案:

答案 0 :(得分:4)

如果它是一个提升功能,它不应该是boost::make_vector_from_pointer'吗?或者,如果不是直接在boost名称空间中,它所在的任何命名空间。