OriginalGriff
Список не маленький...
Для начала, когда вы получаете ошибку, расскажи нам что это - это значит, дайте нам сообщение об ошибке, скажите, где это происходит и как вы это делаете.
Это также хорошая идея, чтобы сказать нам, какой компилятор вы используете, так как мы понятия не имеем...
Но...когда я пробую онлайн-компилятор C++, он выдает много ошибок:
void inputdate(mydate &t)
{
mydate t;
Объявление локальной переменной
t
затемняет параметр с тем же именем: это означает, что вы вообще не можете получить доступ к этому параметру, так зачем же его иметь? На первый взгляд, вы должны полностью удалить локальное объявление и использовать этот параметр.
class mydate
{
int d,m,y;
И
cin>>t.d>>t.m>>t.y;
Поскольку вы не указываете доступ к переменным при их объявлении, они
private
по умолчанию: таким образом, вы не можете получить к ним доступ извне самого класса. С тех пор как
inputdate
функция не является частью
mydate
класс, он не может получить доступ к закрытым членам. Он не имеет той же подписи, что и
friend
функция, объявленная в классе:
class mydate
{
...
friend void inputdate();
...
};
void inputdate(mydate &t)
Так что он не может получить доступ
private
данные.
Либо удалите параметр из определения функции, либо добавьте его в
friend
объявление функции.
И забудь об этом
goto
даже существовать. Немедленно удалите его из всего вашего кода и не пытайтесь использовать его по крайней мере в течение пяти лет - к этому времени у вас будет достаточно опыта, чтобы понять, почему вы не должны использовать его для такого тривиального кода, как этот, и когда это уместно. Используйте такие циклы, как
while
или
do ...while
вместо.