OBJ 向量到成员函数
obj vector to member function
我似乎无法理解如何将向量从类传递到成员函数。我在这里做错了什么?我的错误是:
行列
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++中,可以重载函数,这意味着两个函数可以具有相同的名称,但采用不同的参数。这意味着您在代码中引用了两个不同的函数。
相关文章:
- 如何使用指针传递给函数的数组中对象的函数成员
- c++构造函数成员初始化:传递参数
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何在C++通过公共函数访问私有函数成员?
- 解释了构造函数成员初始化列表
- 调用std::函数成员时内存损坏
- 是否可以为模板类的模板函数成员设置别名?
- 捕获 lambda 函数C++成员变量
- 构造函数成员初始值设定项跨成员列出,安全吗?
- 获取与在模板参数中传递的函数成员类型相同的类
- 如何从公共函数成员访问地图私有成员
- C 构造函数成员分配优化
- 使用命名空间进行函数成员定义
- 函数成员作为 CUDA 内核的参数
- 模板基类函数成员的别名
- 函数成员中用于void和继承的enable_if
- 头文件中是否定义了一个很长的Class函数成员
- 类内/构造函数成员初始化
- 使用指向部分专用函数成员的指针自动填充向量
- 指向函数成员的指针