Большие аргументы против объявления C ++ как «чистого» OO состоят в том, что ему все еще требуется по крайней мере один не-OO бит, main()
, и что не все является объектом (int
, long
и др.).
Он также предоставляет состояние объекта для манипуляции без использования парадигмы передачи сообщений (открытые члены). Это нарушает инкапсуляцию объектов.
Java, с другой стороны, имеет main()
как статический метод класса, так что он ближе, но в нем все еще есть не-объектные вещи.
Smalltalk - это лингва франка, которую обычно считают чистейшим из чистых, но я не знаю достаточно об этом, чтобы комментировать.
Я, я склонен оставлять такие аргументы для интеллигенции, пока я занимаюсь разработкой кода и доставкой своим клиентам: -)