C++ 我的C++;工作
因为我的代码,我的头撞到了墙上。基本上,我需要创建一个程序来读取文件并打印出规范要求的内容。我被规范的这一部分卡住了: 对于6分,创建一个名为analyze.cpp的文件,其中包含一个程序: •打开sheffield.data并跳过标题行(getline将非常方便) •将文件中的数据读取到MonthData对象的向量中 •使用矢量中存储的数据进行计算和显示 –最低温度的年份和月份 –总降雨量最高的年份 简而言之,sheffield.data文件中包含以下信息: yyyy mm tmax tmin af雨日 degC degC天毫米小时 1930 1 8.1 2.4 6 120.5 54.2 1930 2 4.4 0.6 12 22.2 29.1 1930 3 8.1 2.1 9 76.2 88.2 我有3个文件。Data.cpp、Data.hpp和analyze.cpp Data.hpp:C++ 我的C++;工作,c++,class,C++,Class,因为我的代码,我的头撞到了墙上。基本上,我需要创建一个程序来读取文件并打印出规范要求的内容。我被规范的这一部分卡住了: 对于6分,创建一个名为analyze.cpp的文件,其中包含一个程序: •打开sheffield.data并跳过标题行(getline将非常方便) •将文件中的数据读取到MonthData对象的向量中 •使用矢量中存储的数据进行计算和显示 –最低温度的年份和月份 –总降雨量最高的年份 简而言之,sheffield.data文件中包含以下信息: yyyy mm tmax tmin
#ifndef DATA_HPP
#define DATA_HPP
#include <iostream>
#include <string>
#include <cmath>
class MonthData
{
friend std::istream& operator >> (std::istream&, MonthData&);
public:
//overload constructor
MonthData(double, int, double, double, int, double, double);
//Accessor functions
double getYear() const { return year; } //returns the year
int getMonth() const { return month; } //returns the month
double getMaximum() const { return temp_maximum; } //returns maximum temperature
double getMinimum() const { return temp_minimum; } //returns minimum temperature
int getFrost() const { return air_frost; } //returns air frost
double getRain() const { return rain; } //returns rainfall
double getSun() const { return sun; } //returns no of hours of sunshine
private:
double year;
double month;
double temp_maximum;
double temp_minimum;
int air_frost;
double rain;
double sun;
};
#endif
MonthData类缺少默认构造函数
error: no matching function for call to ‘MonthData::MonthData()’
您在main()中编写的代码构造了一个没有参数的MonthData,这就是上述错误的原因(可能std::vector因此,请提供一个默认构造函数。您正在此处调用默认构造函数:
error: no matching function for call to ‘MonthData::MonthData()’
MonthData data;
但是你没有实施一个
您创建了一个构造函数,该构造函数接收参数,将文件读取为变量,然后实例化MonthData数据(…) 您没有为
MonthData()
声明默认构造函数,编译器是正确的。您需要读取错误。没有匹配的函数用于调用“MonthData::MonthData()”
。您没有默认构造函数。
error: no matching function for call to ‘MonthData::MonthData()’
MonthData data;
MonthData data;