[gmpi] Re: C++ detail question

Oh you have a struct Foo, and you cast it to a class CFoo (which has extra members).

You can not use virtual methods, because struct Foo has no vtable ( i'm assuming struct Foo, is a C struct, not a C++ struct which can have virtual members).

You can in general use non-virtual methods. Don't think it's considered good practice though.
usually better to construct a new CFoo using Foo to initialise it.


i take it we're talking about GUIDs, and the need for operator== and operator<.

Might be easier to have no wrapper class at all, but to simply define non-member functions for comparison and equality. That would allow you to use struct GMPI_GUID in a STL map, without any modification to the struct.

Jeff

Tim Hockin wrote:
On Thu, Mar 03, 2005 at 10:01:09AM +1300, Jeff McClintock wrote:

OK, so second question.  If I cast a "struct Foo *" to a "class CFoo *",
what happens?  Can I use non-virtual methods on it?  Can I use virtual
methods on it?

Obviously, I could not access any data members that are part of CFoo but
not Foo, right?

Well no. Since CFoo inherits from Foo, a pointer to CFoo can access Foo members (provided they're public of course).


Re-read what I wrote :)  A CFoo that came from a Foo can access Foo
members but not CFoo members.

----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe




----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: