The first does not make any sense, since you discard the _BObject constant _BObject that you can pass it later as a constant reference to the BClass constructor and create a copy of BObject . The second does what it means - discards a constant and stores a reference to the original object. Therefore, if you ask me, the second is better. Remember that const_cast not always safe.
user405725
source share