首页 > 解决方案 > 我该如何解决一元论据中的错误?

问题描述

#include<iostream>
#include<fstream>
#include<string>
using namespace std;




int main(){
    const char *months[12]={"January", "February", "March", "April","May", "June", "July", "August","September", "October", "November", "December"}; // to check month is that true or false.
    int day,year;
    string first,last,month;
    Person p(first,last,day,month,year);
    ifstream infile;                   //opening input file
    infile.open("input.txt"); 

    while(!infile.eof()) {

        }
    }
}

我检查输入文件中的值并在输出文件中打印正确的值。在检查输入文件中的日期和年份是否正确后,我调用 setmonth 函数检查月份是否正确。

我该如何解决这个错误?什么是 printInfo 函数参数?

标签: c++classexceptioncomposition

解决方案


所以第一个问题是你写

if(!p.setMonth(month)) 

这意味着setMonth应该返回一个可以传递给!. 但是如果你看setMonth你会看到这个

void setMonth(string m){}

setMonth是一个void函数,它不返回任何东西,所以!p.setMonth()是非法的。

可能它应该返回一个bool

bool setMonth(string m) { ... }

我想void printInfo(ostream){}应该是void printInfo(ostream&){}。这是将输出流传递给函数的正常方式。


推荐阅读