А что делает ООП неуместным в чисметодах?
Ничего, но от ООП, как и любого инструмента, могут быть и плюсы, и минусы. В объект можно «завернуть» разный набор данных и функций, и не всякий способ этого можно назвать полезным. Иногда полезный способ потребует много оверхеда и т. п..
А разве использование геттеров - это нарушение инкапсуляции?
Так вы же даёте полный доступ к массиву. Даже если нет сеттера для указателя, но есть геттер, можно всё равно что угодно делать с данными по нему.
Итак, у вас действительно упомянутая
Munin ошибка тогда. Строка
Unext[i]=k*(a[i+1]-2*a[i]+a[i-1])+2*a[i]-Uprev[i];получается после самой первой итерации («внешней», из предыдущего фрагмента) эквивалентна
Unext[i]=k*(Unext[i+1]-2*Unext[i]+Unext[i-1])+2*Unext[i]-Uprev[i];В выделенном куске вы используете изменённое в предыдущей «внутренней» (в методе) итерации значение.
Вообще не следовало вытаскивать из класса ту «внешнюю» итерацию, её тоже надо оформить как метод. Тогда не будет необходимости выдавать массивы наружу.
Плюс, вычисления не должны зависеть от отображения. Иногда есть смысл делать один кадр на несколько шагов вычисления или вообще пустить их в разных потоках. Можно копировать состояние внутреннего массива в переданный специальному методу внешний, или что-то ещё такое.
-- Вт дек 01, 2015 00:12:37 --(Оффтоп)
И вот в том числе и потому я с недоумением смотрю на советующих начинать программировать с C++, потому. Нужна жуткая производительность — можно выучить C++
после.
Изучать одновременно наследие C (в том числе явные указатели и интересные массивы), объекты и вообще программирование — это можно счесть самим собой разумеющимся, но можно же учитывать результаты таких предположений, они постоянно продуцируются уже много лет.
-- Вт дек 01, 2015 00:18:20 --ошибка
Может, и ещё есть — не присматривался.