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?

Path csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!news3.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
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 Sat, 09 Jul 2011 19:28:18 +1200
Lines 52
Message-ID <97qea4F6tmU2@mid.individual.net> (permalink)
References <iv8s22$2sp$1@speranza.aioe.org>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Trace individual.net w73xg/iMRiWOq/DMWVf+6wghjwHkBB2CXGrp6nmHZ83WiIe6Pa
Cancel-Lock sha1:bLxAiuMGvRtzNyVkNWVeXfnFi0I=
User-Agent Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.2.9) Gecko/20101021 Lightning/1.0b2 Thunderbird/3.1.4
In-Reply-To <iv8s22$2sp$1@speranza.aioe.org>
Xref x330-a1.tempe.blueboxinc.net comp.lang.c++:7668

Show key headers only | 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