首页 > 解决方案 > 使用成员函数求解方程 C++

问题描述

我目前正在尝试创建一个程序,通过将数组传递给类的成员函数来计算具有给定时间值的火箭的质量。我得到这两个错误,似乎无法弄清楚如何摆脱它们。任何建议都非常感谢,谢谢。

23 8 [错误]“双重装备::calcmass(double)”的原型与“装备”类中的任何原型都不匹配

13 10 [错误] 候选者是:双重装备::calcmass()

#include <iostream>
#include <fstream>
#include <cmath>
#include <cstring>
using namespace std;

class equip
{
    public:
        double mass[999999999], velocity, height, time[999999999];
        double calcmass();
    private:
        double T = 7000;
        double g = 32.2;
        double K = 0.008;
};

double equip::calcmass(double time)
{
    int i = 0;
    for(i=0; i=999999999; i++)
    {
        return mass[i] = (3000 - 40 * time[i]) / g;
    }
}

int main()
{
    int i = 0;
    equip rocket;
    ifstream infile;
    string filename;
    cout<<"Enter input file name for time (time): ";
    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<999999999; i++)
    {
        infile>>rocket.time[i];
    }

    for(i=0; i<999999999; i++)
    {
        cout<<rocket.mass[i];
    }

    return 0;
}

标签: c++arraysclass

解决方案


在您声明的类定义中

double calcmass()

在成员函数的定义中

double calcmass(double time)

他们不匹配。一个接受 adouble作为参数,另一个不接受。


推荐阅读