?????????C++????????????
????1 CString MyClass::GetStringValue() const
????2 {
????3 ????return m_strValue;
????4 }
???????????????и?????e??????????ж?????????????????
????CString MyClass::GetStringValue() const
????{
????if(m_strValue.IsEmpty())
????SetStringValue();
????return m_strValue;
????}
?????????????????????и?????const???????治????÷?const??????
???????????????????
????error C2662: “MyClass::SetStringValue”: ?????“this”?????“const MyClass”????“MyClass &”
??????????????????????????????????????????????????????this???????????????const ????????????????????const??????????????????????????????????
????CString MyClass::GetStringValue(const MyClass* this)
????{
????if(this->m_strValue.IsEmpty())
????this->SetStringValue();
????return this->GetStringValue();
????}
?????????????£??????????static?????????£?
????CString MyClass::GetStringValueS(const MyClass* mcp)
????{
????if(mcp->m_strValue.IsEmpty())
????mcp->SetStringValue();
????return mcp->GetStringValue();
????}
????????????????????????
????error C2662: “MyClass::SetStringValue”: ?????“this”????“const MyClass”????“MyClass &”
???????????????????const????
????CString MyClass::GetStringValue()const
????{
????MyClass * nonconstthis = (MyClass *)this;
????if(m_strValue.IsEmpty())
????nonconstthis->SetStringValue();
????return m_strValue;
????}
???????????????????????????
????????????????const_cast<>????????????????飺
????CString MyClass::GetStringValue()const
????{
????if(m_strValue.IsEmpty())
????const_cast<MyClass *>(this)->SetStringValue();
????return m_strValue;
????}
?????????????????Υ????const???????????????????????????????Υ?????????????????????????????????á?