Hola,<br><br>Es sólo para aprender el uso de const y para dominarlo bien. ¿Me podrías poner un ejemplo de eliminar la parte de 'const' temporalmente a través de 'const_cast'? Probaré lo de mutable.<br><br>Saludos.<br>
<br><div class="gmail_quote">El 15 de mayo de 2012 03:15, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola User,<div class="im"><br>
<br>
On 5/14/2012 7:28 PM, User wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola,<br>
<br>
En efecto, 'other' es constante, no lo he puesto anres, pero es un<br>
parámetro constante del método 'myClass::doSomething()', El<br>
prototipo, por tanto, quedaría así: void myClass::doSomething(const<br>
myObjectType &myObject, const myOtherClass* other) const.<br>
<br>
La solución que propones me funciona, pero ¿se podrá hacer constante<br>
al método 'setMember()' y dejar constante al parámetro 'other'? Lo<br>
que quiero hacer en 'setMember()' es asignar el valor de<br>
'myObject.getMember()' a un miembro de la clase myOtherClass.<br>
<br>
</blockquote>
<br></div>
Como he dicho antes, no tiene sentido que invoques 'setMember()', la cual por su nombre significa que vas a modificar un miembro de "este objeto", con un objeto constante. Es como intentar hacer esto:<br>

<br>
const int num = 10;<br>
<br>
num = 5;<br>
<br>
Aparte de ser semánticamente incorrecto, también es una operación ilógica. Por eso te menciono que revises el diseño de lo que quieres hacer. Personalmente, si vas a modificar un objeto que es constante, entonces significa que no tienes las ideas claras.<br>

<br>
Ahora bien, hay otra forma de saltarse toda esta lógica, que es eliminando la parte de 'const' temporalmente a través de 'const_cast'. La otra solución es la de establecer que 'setMember()' sea constante - cosa que estoy MUY en contra porque no tiene sentido alguno - pero indicar que ese miembro a modificar sea "mutable". Por ejemplo,<br>

<br>
class myOtherClass<br>
{<br>
  mutable int miembro;<br>
  ...<br>
};<br>
<br>
<br>
Reitero que debes pensar MUY bien lo que quieres hacer, ya que si 'other' es constante, no tiene sentido modificarlo, y si se debe modificar, entonces no debería ser constante.<br>
<br>
<br>
Espero que esto te oriente un poco.<div class="HOEnZb"><div class="h5"><br>
<br>
Steven<br>
<br>
<br>
______________________________<u></u>_________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/<u></u>mailman/listinfo/cconclase_<u></u>listas.conclase.net</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120515135520'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/<u></u>index.php?gid=2&mnu=FAQ</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120515135520'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

</div></div></blockquote></div><br>