Hola,<br><br>En efecto, 'other' es constante, no lo he puesto anres, pero es un parámetro constante del método 'myClass::doSomething()', El prototipo, por tanto, quedaría así: <b>void myClass::doSomething(const myObjectType &myObject, const myOtherClass* other) const</b>. <br>
<br>La solución que propones me funciona, pero ¿se podrá hacer constante al método 'setMember()' y dejar constante al parámetro 'other'? Lo que quiero hacer en 'setMember()' es asignar el valor de 'myObject.getMember()' a un miembro de la clase myOtherClass.<br>
<br>Saludos.<br><br><div class="gmail_quote">El 15 de mayo de 2012 01:09, 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><div class="h5"><br>
<br>
On 5/14/2012 5:21 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>
Estoy teniendo un problema al hacer un set desde un método constante.<br>
Pongamos que tengo este método constante:<br>
<br>
void myClass::doSomething(const myObjectType &myObject) const<br>
{<br>
     ...<br>
     other->setMember(myObject.<u></u>getMember()); // getMember() tiene este<br>
prototipo: myOtherObjectType* getMember() const;<br>
     ...<br>
}<br>
<br>
void myOtherClass::setMember(const myOtherObjectType* myOtherObject)<br>
{<br>
     ...<br>
      m_ myOtherObject  = myOtherObject; // La definición de  m_<br>
myOtherObject es: const myOtherObjectType*     m_ myOtherObject ;<br>
     ...<br>
}<br>
<br>
El error es el siguiente:<br>
<br>
In member function 'void myClass::doSomething(const myObjectType<br>
&myObject) const':<br>
C:\project\src\MyClass.cpp:89: error: passing 'const myOtherClass' as<br>
'this' argument of 'void  myOtherClass::setMember(const<br>
myOtherObjectType *)' discards qualifiers<br>
<br>
Parece que todos los tipos, de origen y destino coinciden. ¿Por qué me<br>
aparece ese error? ¿Cómo lo puedo solucionar?<br>
<br>
</blockquote>
<br></div></div>
Según el mensaje del error, el problema está con 'other' que es de tipo 'const myOtherClass' pero estás invocando la función miembro, 'setMember()' la cual NO es constante. Es decir, aplicas una función no constante al objeto constante, 'other'.<br>

<br>
Esto es obviamente inválido y posiblemente ilógico. Debes definir 'other' de un tipo no constante para invocar 'setMember()'.<br>
<br>
<br>
Espero haber aclarado la duda.<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':'20120515031520'}, 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':'20120515031520'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

</blockquote></div><br>