Re: C++ Design question
denis_browne@hotmail.com wrote:
Hi All,
I'm making a class which derives(implements) from 5 interfaces:
class myClass: public base1, public base2, public base3,.......
I want to be able to ask from any interface about a pointer to another
interface
What I mean is:
myClass _myImpObj;
base1 *b1 = &_myImpObj;
base *b2 = b1->QueryInterafce("b2");
base *b3 = b2->QueryInterafce("b3");
base *b1N = b3->QueryInterface("b1");
Its is very simialir to COM mechanism.Anyone knows how to implement it?
struct Unknown { virtual Unknown * QueryInterface(std:string if) = 0;
~Unknown(); }
struct base1 : Unknown { ... }
struct base2 : Unknown { ... }
struct base3 : Unknown { ... }
Unknown * myClass::QueryInterface(std:string if)
{
if (if == "b1") { return (base1*)this; }
if (if == "b2") { return (base2*)this; }
if (if == "b3") { return (base3*)this; }
return null;
}
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]