“向量”未在此范围内声明

Mih*_*ela 6 c++ vector

我收到这个错误,当我在 *h 和 *cpp 中分离一个文件时,以下代码未在此范围内声明“向量”这是main.cpp:

#include <iostream>
#include <math.h>
#include <vector>
#include "functia.h"

using namespace std;

int main()
 {
  vector<double> s(3);
  double b= 4;
  fun(s, b);
  cout<<s[0]<<endl;
  double c= 9;
  fun(s, c);
  cout<<s[0];

  }
Run Code Online (Sandbox Code Playgroud)

功能.h:

 void fun(vector<double> & rS, double a)
 {
   rS[0] = a + 3;
   rS[1] = 4;
   rS[2] = 5;
 }
Run Code Online (Sandbox Code Playgroud)

功能.cpp:

#include <iostream>
#include <math.h>
#include<vector>

using namespace std;


void fun(vector<double> &, double );
Run Code Online (Sandbox Code Playgroud)

vir*_*ith 10

你已经在 cpp 文件中得到了声明,在头文件中得到了定义,它应该是相反的。

交换文件后,using namespace std;从functia.h 中删除,因为在头文件中引入命名空间不是一个好习惯。您需要将声明更改为

void fun(std::vector<double> &, double );

请参阅C++ 头文件中的“使用命名空间”

我还强烈建议阅读C/C++ 包括文件顺序/最佳实践