Компиляция этого кода выдает ошибку
error time constructor time::time(int,int,char) cannot be overloaded with time::time(int,int,char)
Я пытаюсь уменьшить количество перегруженных конструкторов, поэтому я пытаюсь указать значения по умолчанию в параметрах конструктора. Допустима ли строка entry(int sno=5,time t{1,2,'p'});
в конструкторе для класса entry
? Если класс содержит сложный объект другого класса, то можно ли его инициализировать таким образом?
#include<iostream>
using namespace std;
class time
{
int hours;
int mins;
char ap;
public:
time(int hours=0,int mins=0,char ap='n');
time(int a, int b, char c): hours{a},mins{b},ap{c}
{
}
void showtime()
{
cout<<"\nTime : "<<hours<<" "<<mins<<" "<<ap<<endl;
}
};
class entry{
int sno;
time t;
public:
entry(int sno=5,time t{1,2,'p'});
void showdata()
{
cout<<"\ne : "<<sno<<" : ";
t.showtime();
}
};
int main()
{
entry e;
e.showdata();
return 0;
}
=
). Неважно, аргумент этоint
или объект, синтаксис тот же. - person Some programmer dude   schedule 05.09.2020time
, но вы спрашиваете о классеentry
. Это подозрительно похоже на несколько вопросов или, возможно, на необоснованный поспешный вывод. Я бы предложил скомпилировать классtime
, прежде чем спрашивать о классеentry
. - person JaMiT   schedule 05.09.2020