Почему возникает ошибка при передаче 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;
}
Почему ругается компилятор в первом случае? Объясните пожалуйста.