The declaration int get() const, which is likely a member function, promises that it does not change the instance upon which it is called. It promises to treat the instance as const, and can only change member variables declared as mutable (a rare exception).
To be clear,
Where 'get' is declared const promises not to change n.
This applies, too, to your third example.
When the function is not declared const, it is suggestive that it will change n.
As to returning a const int, especially as a reference, the calling code is restricted from changing the integer. If the returned reference is a member of n, this restricts the calling code from changing the value of that reference, which would have the effect of changing a member inside n if it did.
When returning an int (not a reference to an int), the calling code receives a copy, which it then "owns", and can change without impacting anything in n.
For the int & version, it depends on what was returned, but presumably the reference is to some member of n, and if the calling code changes the value stored at that reference, the corresponding member of n will be changed.