我遇到了此错误," vector"在此范围中没有声明"在 *h和 *cpp a文件中分开时,在此范围中都没有声明" vector"。这是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];
}
functia.h:
void fun(vector<double> & rS, double a)
{
rS[0] = a + 3;
rS[1] = 4;
rS[2] = 5;
}
functia.cpp:
#include <iostream>
#include <math.h>
#include<vector>
using namespace std;
void fun(vector<double> &, double );
您在CPP文件中有声明,并且标题中的定义确实应该是相反的。
已交换文件后,从functia.h删除 using namespace std;
,因为在标头文件中删除名称空间不是一个好习惯。您需要将声明更改为
void fun(std::vector<double> &, double );
请参阅"使用名称空间"在C 标题
中我还强烈建议您阅读C/C 包括文件订单/最佳实践
更改'vector;到" std :: vector"