Во-первых, неудивительно, что использование двух разных функций на двух разных языках, предназначенных для выполнения одной и той же задачи, даст вам несколько разные результаты.Если вы хотите знать, что делает каждый из них, посмотрите документацию.
В частности, cin >> i
в C ++ определенно не действует так же, как int.Parse(Console.ReadLine())
в C #.Например, версия C ++ может читать несколько чисел из одной строки (разделенных пробелами), а версия C # - нет.
Но для вашего конкретного примера это выглядит либо как ошибка вкомпилятор, который вы используете, или может быть, что спецификация неясна.Если я скомпилирую ваш код C ++ в Visual Studio, он будет вести себя так же, как и версия C #.
Кроме того, я не уверен, что именно вы имели в виду, но ваш код C ++ определенно не «следует подходу ООП».(Я не говорю, что должен, просто это не так.)