Алгол 68 и Паскаль, безусловно, делают. IIRC, Ада тоже, хотя я не помню всех деталей. PL / I сделал то же самое - он (легко) был первым, кто включил оба.
Ссылки на Алгол-68 были действительно больше похожи на указатели C ++. В C ++, когда вы инициализируете ссылку, она всегда ссылается на один и тот же объект. В Алголе 68 вы могли бы «переустановить» ссылку, чтобы она ссылалась на другой объект.
Прошло много времени с тех пор, как я использовал Pascal, но если память обслуживает, он использует только ссылки для передачи параметров (т.е. параметр var
передается по ссылке). Я не думаю, что вы можете создать ссылку, кроме как в качестве параметра.
Ada позволяет пометить параметры как in
, out
или inout
. Если я правильно помню, некоторые inout
параметры копируются в функцию, а затем копируются обратно вызывающей стороне в конце, но другие передаются по ссылке. Как я уже сказал, я не помню деталей.