不知道如何在main中调用类的方法

Don't know how to call method of a class in main

本文关键字:调用 方法 main 不知道      更新时间:2023-10-16

所以我编写了这个,我有一个main.cpp,我在一个叫做getData的类中调用一个方法,基本上我想做的是让用户输入出发和目的地,然后输出价格和时间(所有数据都存储在一个文本文件fly.txt中)

这似乎并不复杂,但我总是出错。我是否在头文件中正确声明了所有内容,并且我是否在主体中正确调用了方法?

提前感谢!

getData.h

#ifndef GETDATA_H
    #define GETDATA_H
    #pragma once
class getData
{
public:
getData(String dep,String des)
    ifstream data("fly.txt");
String departure,destination,time;
int price;
    vector<String> flights;
    vector<String> times;
    vector<int> prices;
void getFlights(String dep, String des);
void getTime(String dep, String des);
void getPrice(String dep, String des);
};
#endif

getData.cpp

#include "getData.h"
#include "std_lib_facilities.h"

getData::getFlights(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
flights.push_back(departure);
}
}
getData::getPrice(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
prices.push_back(price);
}
}
getData::getTime(string dep, string des){
while(data >> departure >> destination >> time >> price){
    if (dep==departure && des=destination)
times.push_back(time);
}
}

main.cpp

#include "std_lib_facilities.h"
#include "getData.h"
int main(){
getData test;
cout<<"Where are you flying from?"<<endl;
string ideparture;
cin>>ideparture;
cout<<"Where are you flying to?"<<endl;
string idestination;
cin>>idestination;
getData.getFlights(ideparture, idestination);

keep_window_open("q");
}

在main ():

getData构造函数需要两个参数:getData test(String deep, String des);

在getData

  • 定义类变量
  • #pragma once = #ifndef GETDATA_H[…]

getData:

class getData {
  private:
    std::ifstream data;
    std::string departure,destination,time;
    int price;
    std::vector<std::string> flights;
    std::vector<std::string> times;
    std::vector<int> prices;
  ...
}

(dep==departure && des==destination)

void getData::fn(...)

我没有耐心找到所有的bug…

您应该仔细验证您的变量。"String"变量类型不同于"String"(注意大小写)。C/c++及其派生语言是区分大小写的。

代码:

// Header file definition
void getFlights(String dep, String des);
// Implementation file
getData::getFlights(string dep, string des){
    // ...
}