OBJ 向量到成员函数

obj vector to member function

本文关键字:函数 成员 向量 OBJ      更新时间:2023-10-16

我似乎无法理解如何将向量从类传递到成员函数。我在这里做错了什么?我的错误是:

行列

27 8 [错误] "双装备::calcmass(std::vector("的原型与类"装备"中的任何原型都不匹配

17 10 [错误] 候选者是:双装备::calcmass((

60 21 [错误] 声明中的限定 id 在 '(' 标记之前

#include <cmath>
#include <cstring>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
class equip
{
public:
vector<double> time;
vector<double> mass;
vector<double> velocity;
vector<double> height;
double calcmass();
double calcvelocity();
double calcheight();
double calctmax(); 
private:
double T = 7000;
double g = 32.2;
double K = 0.008;
};
double equip::calcmass(vector<double> time)
{
int i = 0;
for(i=0; i<time.size(); i++)
{
return mass[i] = (3000 - 40 * time[i]) / g;
}
}
int main()
{
int i = 0;
equip rocket;
rocket.time;
ifstream infile;
string filename;
cout<<"Enter input file name for time (t): ";
cin>>filename;
infile.open(filename.c_str());
while(infile.fail())
{
cerr<<"Error opening file. n";
cout<<"Enter file name: ";
cin>>filename;
infile.open(filename.c_str());
}
for(i=0; i<rocket.time.size(); i++)
{
infile>>rocket.time[i];
}
double equip::calcm(rocket.time);
for(i=0; i<rocket.mass.size(); i++)
{
cout<<rocket.mass[i];
}
return 0;
}

在你的类中,你定义了double calcmass();它接受 NO 参数并返回一个双精度,但后来你尝试将其声明为double equip::calcmass(vector<double> time)它接受双精度向量并返回一个双精度。应将类中的声明更改为double calcmass(vector<double> time);

在C++中,可以重载函数,这意味着两个函数可以具有相同的名称,但采用不同的参数。这意味着您在代码中引用了两个不同的函数。