Re: Copy of derived object from pointer to base
From: Larry Brasfield (donotspam_larry_brasfield_at_hotmail.com)
Date: 10/12/04
- Next message: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Previous message: Roger: "Re: Copy of derived object from pointer to base"
- In reply to: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Next in thread: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Reply: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 12 Oct 2004 09:13:13 -0700
[minor improvement suggested below]
"Sigurd Stenersen" <sigurds@utvikling.com> wrote in message
news:OXrYI$GsEHA.2776@TK2MSFTNGP14.phx.gbl...
[regarding how a virtual copy method would appear]
[I take a little liberty with quotes here, applying Sigurd's
correction to his earlier (quoted) post for clarity.]
> class Base
> {
> public:
> virtual Base *Clone() { return new Base(*this); }
> };
>
> class Derived : public Base
> {
#if 0
> virtual Base *Clone() { return new Derived(*this); }
#endif
virtual Derived *Clone() { return new Derived(*this); }
> };
The reason to return a pointer whose type is pointer to the
derived class is to make the Clone() method usable, without
casting, when the result is known to be a subclass of Base.
For example:
void Fiddle(Derived & d)
{
Derived * pAnother = d.Clone();
}
Proper support of this long time C++ feature came late
to MSVC++, arriving with v7.
-- --Larry Brasfield email: donotspam_larry_brasfield@hotmail.com Above views may belong only to me.
- Next message: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Previous message: Roger: "Re: Copy of derived object from pointer to base"
- In reply to: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Next in thread: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Reply: Sigurd Stenersen: "Re: Copy of derived object from pointer to base"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|