我收到这个错误,当我在 *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++ 包括文件顺序/最佳实践