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

时间:2013-05-19 22:13:18

标签: c++

所以我编程了这个,我有一个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");
}

2 个答案:

答案 0 :(得分:1)

  

在main()中:

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

  

在getData

  • 定义类变量
  • #pragma与#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(...)

我没有耐心找到所有错误......

答案 1 :(得分:1)

您应该仔细验证您的变量。 “String”变量类型与“string”不同(请注意大小写)。 C / C ++及其所有派生都区分大小写。

您的代码:

// Header file definition
void getFlights(String dep, String des);

// Implementation file
getData::getFlights(string dep, string des){
    // ...
}