C++ 无法调用构造函数

C++ 无法调用构造函数,c++,C++,我必须制作一个显示小时和分钟的计时器,但是我得到了这个编译错误 在成员函数“std::string Timer::toString()const”中: timer.h:43:17:错误:无法直接调用构造函数'timer::timer' [-fpermissive] 我不明白为什么会这样,也不明白这意味着什么。请帮忙。 我认为这与toString函数有关,但我不确定 #ifndef TIMER_H_ #define TIMER_H_ #include <string> #includ

我必须制作一个显示小时和分钟的计时器,但是我得到了这个编译错误

在成员函数“std::string Timer::toString()const”中: timer.h:43:17:错误:无法直接调用构造函数'timer::timer' [-fpermissive]

我不明白为什么会这样,也不明白这意味着什么。请帮忙。 我认为这与
toString
函数有关,但我不确定

#ifndef TIMER_H_
#define TIMER_H_

#include <string>
#include <sstream>



class Timer {
private:
    int horas;
    int minutos;

public:
    Timer();
    Timer(int, int);
    Timer(const Timer&);

    int getHoras() const;
    int getMinutos() const;

    void operator =(const Timer&);
    void operator +=(const Timer&);
    std::string toString() const;



};

 std::string Timer::toString() const {
     std::stringstream aux;

 Timer :: Timer() : horas(0), minutos(0) {}

 Timer :: Timer(int hh, int mm) {
     if(mm > 60){
         horas = hh + (mm/60);
     }else {
         horas = hh;
         minutos = mm;
     }
 }

 Timer :: Timer(const Timer  &source) : horas(source.horas), minutos(source.minutos) {}

 int Timer :: getHoras() const {
     return horas;
 }

 int Timer :: getMinutos() const {
     return minutos;
 }

 void Timer :: operator =(const Timer &source) {
     horas = source.horas;
     minutos = source.minutos;
 }

 void Timer :: operator +=(const Timer &source) {
     if((source.minutos+minutos) > 60){
         horas = horas + 1;
         minutos = (minutos + source.minutos) % 60;
     }else {
         minutos = minutos + source.minutos;
     }
     horas = (horas + source.horas)%24;
 }

 bool operator ==(const Timer &izq, const Timer &der) {
     return ( (izq.getHoras() == der.getHoras())&&(izq.getMinutos() == der.getMinutos() );
 }

 bool operator >(const Timer &izq, const Timer &der) {

     if(izq.getHoras() > der.getHoras()){
         return true;
     }else if(izq.getHoras() == der.getHoras()){
         if(izq.getMinutos() > der.getMinutos()){
                return true;
         }
     }

     return false;
 }
 #endif
\ifndef定时器_
#定义定时器_
#包括
#包括
班级计时器{
私人:
内霍拉斯;
国际分钟;
公众:
定时器();
定时器(int,int);
定时器(常数定时器&);
int getHoras()常量;
int getMinutos()常量;
void运算符=(常量计时器&);
无效运算符+=(常量计时器&);
std::string toString()常量;
};
std::字符串计时器::toString()常量{
std::stringstream-aux;
Timer::Timer():horas(0),minutos(0){}
定时器::定时器(inthh,intmm){
如果(毫米>60){
horas=hh+(毫米/60);
}否则{
horas=hh;
分钟数=毫米;
}
}
Timer::Timer(const Timer&source):horas(source.horas),minutos(source.minutos){}
int Timer::getHoras()常量{
返回霍拉斯;
}
int计时器::getMinutos()常量{
返回分钟数;
}
无效计时器::运算符=(常量计时器和源){
horas=source.horas;
minutos=source.minutos;
}
无效计时器::运算符+=(常量计时器和源){
如果((震源分钟数+分钟数)>60){
贺拉斯=贺拉斯+1;
minutos=(minutos+source.minutos)%60;
}否则{
minutos=minutos+source.minutos;
}
horas=(horas+source.horas)%24;
}
布尔运算符==(常量计时器和izq、常量计时器和der){
返回((izq.getHoras()==der.getHoras())&&(izq.getMinutos()==der.getMinutos());
}
布尔运算符>(常数计时器和izq、常数计时器和der){
if(izq.getHoras()>der.getHoras()){
返回true;
}else if(izq.getHoras()==der.getHoras()){
if(izq.getMinutos()>der.getMinutos()){
返回true;
}
}
返回false;
}
#恩迪夫

函数定义中缺少一个
}
。此外,如果函数类型声明为
字符串
,则必须返回一个
字符串

std::string Timer::toString() const {
    std::stringstream aux;
    std::string youMustReturnAString;
    return youMustReturnAString;
}
第77行末尾还缺少一个

bool operator ==(const Timer &izq, const Timer &der) {
        return ((izq.getHoras() == der.getHoras()) && (izq.getMinutos() == der.getMinutos()));
}

函数定义中缺少一个
}
。此外,如果函数的类型声明为
string
。然后必须返回一个
字符串

std::string Timer::toString() const {
    std::stringstream aux;
    std::string youMustReturnAString;
    return youMustReturnAString;
}
第77行末尾还缺少一个

bool operator ==(const Timer &izq, const Timer &der) {
        return ((izq.getHoras() == der.getHoras()) && (izq.getMinutos() == der.getMinutos()));
}

std::string Timer::toString()
s定义之后缺少
}
。在
std::string Timer::toString()
s定义之后缺少
}