I've been using this code to change the appearance of references (enclosing the number within round brackets):
\let\oldref\ref
\renewcommand{\ref}[1]{(\oldref{#1})}
After that, I wanted to make references "clickable" so I added the package hyperref using the hidelinks option:
\usepackage[hidelinks]{hyperref}
The links work fine but I'm wondering why the brackets are no longer visible. Obviously hyperref is redefining \ref but \let should update my definition too. This is independent of the order in which those instructions appear in the code. Where's the problem?

hyperrefredefines a lot of things\AtBeginDocument. – Steven B. Segletes Sep 13 '16 at 16:34\documentclass{...}and ending with\end{document}. – egreg Sep 13 '16 at 16:36hyperrefdoes really a lot of changes. The redefinition of\refis not really recommended unless it is very clear what is requested – Sep 13 '16 at 16:52