Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #7668

Re: mutable vs const_cast, which is better to modify field from const function?

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c++
Subject Re: mutable vs const_cast, which is better to modify field from const function?
Date 2011-07-09 19:28 +1200
Message-ID <97qea4F6tmU2@mid.individual.net> (permalink)
References <iv8s22$2sp$1@speranza.aioe.org>

Show all headers | View raw


On 07/ 9/11 06:19 PM, Qi wrote:
> It's not rare to lazy initialize member field in getter functions which
> are const function.
>
> class SomeClass {
> public:
> 	MyObject * getMyObject() const {
> 		if(! this->myObject) {
> 			this->myObject = create the object;
> 		}
> 		
> 		return this->myObject;
> 	}

You don't need all those "this->".

> private:
> 	MyObject * myObject;
> };
>
> To be able to modify myObject in the getter function, we can
> either,
> 1, Use mutable on myObject.
> mutable MyObject * myObject;
> or
> 2, Use const_cast to cast away constness from "this".
> const_cast<SomeClass *>(this)->myObject = create the object;
>
> Both methods have their own pros and cons, that's why I can't
> decide which is better.

How about:

struct SomeClass
{
   SomeClass() {}

   MyObject* getMyObject() const
   {
     static MyObject* myObject;

     if(!myObject)
     {
       myObject = new MyObject;
     }
		
     return myObject;
   }
};

-- 
Ian Collins

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

mutable vs const_cast, which is better to modify field from const function? Qi <no@no.com> - 2011-07-09 14:19 +0800
  Re: mutable vs const_cast, which is better to modify field from const function? Narinder <narinder.claire@gmail.com> - 2011-07-09 00:20 -0700
    Re: mutable vs const_cast, which is better to modify field from const function? Qi <no@no.com> - 2011-07-09 15:50 +0800
      Re: mutable vs const_cast, which is better to modify field from const function? Narinder <narinder.claire@gmail.com> - 2011-07-09 01:36 -0700
  Re: mutable vs const_cast, which is better to modify field from const   function? Ian Collins <ian-news@hotmail.com> - 2011-07-09 19:28 +1200
    Re: mutable vs const_cast, which is better to modify field from const   function? Qi <no@no.com> - 2011-07-09 15:56 +0800
      Re: mutable vs const_cast, which is better to modify field from const     function? Ian Collins <ian-news@hotmail.com> - 2011-07-09 20:04 +1200
      Re: mutable vs const_cast, which is better to modify field from const function? Narinder <narinder.claire@gmail.com> - 2011-07-12 15:41 -0700
  Re: mutable vs const_cast, which is better to modify field from const function? SG <s.gesemann@gmail.com> - 2011-07-09 01:25 -0700
    Re: mutable vs const_cast, which is better to modify field from const function? Werner Erasmus <werasm@gmail.com> - 2011-07-10 22:25 +0200
      Re: mutable vs const_cast, which is better to modify field from const function? Qi <no@no.no> - 2011-07-11 09:54 +0800
        Re: mutable vs const_cast, which is better to modify field from const function? Werner Erasmus <werasm@gmail.com> - 2011-07-11 09:08 +0200
  Re: mutable vs const_cast, which is better to modify field from const function? Paavo Helde <myfirstname@osa.pri.ee> - 2011-07-09 03:31 -0500
  Re: mutable vs const_cast, which is better to modify field from const function? "Balog Pal" <pasa@lib.hu> - 2011-07-09 10:47 +0200
  Re: mutable vs const_cast, which is better to modify field from const function? Qi <no@no.com> - 2011-07-09 16:54 +0800

csiph-web