Вы никогда не вызываете функции-члены getEmployee
. Поскольку ваш объект Employee
создан в стеке, а employeeId
и salary
не инициализированы, они содержат внутри себя значения мусора.
В функции-члене ShowEmployee
вы выводите только salary
значение переменной, поэтому я предполагаю, что это не совсем тот код, который вы сами компилируете и тестируете.
Что касается ваших соображений, почему вы используете getline
, я не Если это вообще не понятно, строка, переданная в качестве второго аргумента, будет перезаписана, поэтому все, что было в нем до потери вызова. Но если вы хотите смешивать вызовы operator>>
и getline
в одном и том же потоке, как вы, вам нужно использовать ignore
, так как operator>>
не извлечет '\n'
из потока , который будет прочитан getline
.