Почему возникает ошибка при передаче char С++

//пример перегрузки конструктора класса (сам класс)
    class timer {
        int seconds;
    public:
        timer(char* t) { seconds = atoi(t); }
        timer(int t) { seconds = t; }
        timer(int min, int sec) { seconds = min * 60 + sec; }
        void run();
    };
    
int main()
{
    timer a(10), b("20"), c(1, 10); //инициализация объектов класса
    return 0;
}

Ругается на b("20"). А если пишу вот так, то перестает ругаться:

int main()
{
char t[] = "20";
timer a(10), b(t), c(1, 10);
    return 0;
}

Почему ругается компилятор в первом случае? Объясните пожалуйста.


Ответы (0 шт):