R
Rob.
I originally thought this was a compiler error but it seems the standard
prohibits the code below. Has anyone got any good ideas about how to code
around it?
class A;
class B;
class X;
class Y;
class X
{
public:
virtual A* g () const;
};
class Y : public X
{
public:
virtual B* g () const;
};
[The compiler signals an error (non-covariant return types) at this point
because it doesn't know that B is derrived from A]
class A
{
public:
virtual X* f () const;
};
class B : public A
{
public:
virtual Y* f () const;
};
Thanks,
Rob.
prohibits the code below. Has anyone got any good ideas about how to code
around it?
class A;
class B;
class X;
class Y;
class X
{
public:
virtual A* g () const;
};
class Y : public X
{
public:
virtual B* g () const;
};
[The compiler signals an error (non-covariant return types) at this point
because it doesn't know that B is derrived from A]
class A
{
public:
virtual X* f () const;
};
class B : public A
{
public:
virtual Y* f () const;
};
Thanks,
Rob.