首页 > 解决方案 > 将向量传递给类的成员函数

问题描述

我正在尝试将向量传递给成员函数,但不断出现以下错误:

27 28 [错误]“双重装备::calcmass”不是“类装备”的静态成员

13 19 [错误] 非静态数据成员 'equip::time' 的使用无效

27 24 [错误] 从这个位置

28 1 [错误] '{' 标记之前的预期不合格 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(time);
{
    int i = 0;
    for(i=0; i<time.size(); i++)
    {
        return mass[i] = (3000 - 40 * time[i]) / g;
    }
}

int main()
{
    int i = 0;

    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<time.size(); i++)
    {
        infile>>time[i];
    }

标签: c++functionvector

解决方案


您的代码不起作用,因为您定义了一个类equip,但从未在其中创建它的实例main,然后您尝试将文件内容读入类的成员time。此外,您calcmass在类定义中的函数没有参数,但稍后您使用 undetermined type 的参数声明它time。删除函数的参数,它time无论如何都会看到,因为它们都是同一个类的成员。


推荐阅读