为什么会给予此错误- 'void D::func(const D &)':无法将参数1从“const C”转换为“const D &”
如何纠正这一点,我想调用基地的func从派生的func,但注意func是一个朋友函数?
class C
{
public:
C()
{
cout << "in C ctor" << endl;
}
friend void func(const C& abc1)
{
cout << "in C's func" << endl;
}
};
class D : public C
{
public:
D()
{
cout << "in D ctor" << endl;
}
void func(const D& abc)
{
func(static_cast<const C&>(abc));
cout << "in D's func" << endl;
}
};
int main()
{
D d;
d.func(d);
}
为什么这个类似的例子能起作用呢
https://ideone.com/eNmvng
1条答案
按热度按时间kknvjkwl1#
我不确定语法对函数可见性有什么作用,但这是可行的:
为了完整起见,这也是可行的: