2016-10-07 2 views
-2

У меня возникли проблемы с той частью, где мне нужно распечатать день. Я попытался сделать вторую переменную, но она не работает. В основном я беру ввод пользователя для своего дня рождения. Затем я пытаюсь вызвать эту функцию, которая определяет день рождения (он определяет число, которое представляет день). Затем я пытаюсь отправить этот номер функции, которая принимает номер и печатает день рождения в словах. Теперь я получаю сообщение об ошибке «int day2».Redefinition Error C++

Вот мой код:

void determineDayOfBirth() { 

    int day; 
    int month; 
    int year; 
    char backslash; 
    char backslash2; 

    cout << "Enter your date of birth" << endl; 
    cout << "format: month/day/year -->" << endl; 
    cin >> month >> backslash >> day >> backslash2 >> year; 

    if (isValidDate(month, day, year)) { 
     int day2; 
     cout << "You were born on a: "; 
     int day2 = determineDay(month, day, year); 
     printDayOfBirth(day2); 
     cout << endl; 
     cout << "Have a great birthday!!!"; 
    } 
    else { 
     cout << "Invalid date"; 
    } 
    return; 
} 
+1

Как еще должен компилятор сказать вам, что вы переопределены 'day2'? , Проверьте свой код еще раз, вы увидите два объявления 'int day2'. Вы просто используете имя при назначении. Нет необходимости в объявлении второго типа 'int'. – WhiZTiM

ответ

1

Снимите int со второго задания, вы не можете определить переменную дважды в одном блоке.

Чтобы исправить код, заменить:

int day2; 
    cout << "You were born on a: "; 
    int day2 = determineDay(month, day, year); 

С:

cout << "You were born on a: "; 
    int day2 = determineDay(month, day, year); 
1

Вы поставили в два раза "Int DAY2", который на самом деле является переопределение. Вы должны определить «DAY2» только один раз:

if (isValidDate(month, day, year)) { 
    int day2; 
    cout << "You were born on a: "; 
    day2 = determineDay(month, day, year); // REMOVE "int" 
    printDayOfBirth(day2); 
    cout << endl; 
    cout << "Have a great birthday!!!"; 
} 
else { 
    cout << "Invalid date"; 
} 
return; 
0

Причиной проблемы является

int day2; 
    cout << "You were born on a: "; 
    int day2 = determineDay(month, day, year); 

Второе переопределение day2.

Удалить ключевое слово int из этой строки, и оно станет простым назначением.

0

Вы не можете объявить две переменные в одном и том же объеме, так что day2 объявляется дважды в вашем блоке if. вы можете прямо написать:

//if(){ 
    int day2 = determineDay(month, day, year); 
//}