I'm working on existing C++ code that has `volatile` references to objects

`volatile vClass & vobj;`

I come from `C` so I'm familiar with `volatile` when used to access memory-mapped IO like this: 

`*((volatile unsigned int *) 0x12345678) = 0x5`

**QUESTION**

What is the effect of applying `volatile` to (a reference to) an object? 

I would guess that all of its data members inherit `volatile` but what about if a member function has non-volatile memory accesses like 

`void vClass::AccessMem() {*((unsigned int *) 0x12345678) = 0x5;}` 

Would that memory access too become volatile?