如何在类中创建一个函数返回一个向量?

时间:2017-11-26 20:11:04

标签: c++ c++11 vector c++14 std

我有一个类,我希望其中一个类函数接受一个向量并返回一个不同的向量。我试过这样的事情,但是我在函数声明和定义中得到错误,说它们不匹配。

错误消息:

example.cpp:11:18: error: prototype for ‘std::vector<int> myClass::myFunction(std::vector<double>&)’ does not match any in class ‘myClass’
 std::vector<int> myClass::myFunction(std::vector<dataType> & myVector){
                  ^
example.cpp:8:22: error: candidate is: std::vector<int> myClass::myFunction(const std::vector<double>&)
     std::vector<int> myFunction(const std::vector<dataType> & );

实际代码:

#include<vector>
#include<iostream>

typedef double dataType;

class myClass{
public:
    std::vector<int> myFunction(const std::vector<dataType> & );
};

std::vector<int> myClass::myFunction(std::vector<dataType> & myVector){
  std::vector<int> results;
  results.resize(myVector.size());
  for(int i=0; i<results.size(); ++i){
    results[i] = 0;
  }

  return results;
}

int main(){
  return 0;
}

1 个答案:

答案 0 :(得分:3)

根据错误消息,函数是

SetParallel::checkElements(std::vector<double>&)

原型是

SetParallel::checkElements(const std::vector<double>&)

(在两种情况下都省略了初始const std::vector<int>&

你能看出差异吗?