[问题] base class传给derived class function

楼主: Arton0306 (Ar藤)   2015-01-29 01:09:50
有二个问题请教
一、
class D:B
{
void foo(B const &b);
}
像上面这样D有个interface需要吃自己的base class
什么情况需要(适合)这样子的设计?
二、
class A {};
class B:A {};
class C:B
{
void foo(A const &a);
}
compiler会报错,是说private继承只能看到上一(only one)层的class吗
作者: carylorrk (carylorrk)   2015-01-29 01:57:00
1.第一个想到 decorater 2.private inheritance 找不到外面看的 A,而是 B 继承的 A。但是对于 B 以下的都不可存取。 void foo(::A const &a); 就可以了。sorry, decorator 不应该是 private inheritance...
楼主: Arton0306 (Ar藤)   2015-01-30 22:18:00
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com