【发布时间】:2018-12-12 07:26:03
【问题描述】:
我有两节课。在基类 A 中,虚函数 window(void) 声明为常量 const,而在派生类 B 中,window(void) 未声明为 cont。这是否满足多态性?如果我在main中调用window(),它会先调用派生类Bwindow(),然后再调用window()的A类版本。就我而言,它不是这样的。我是否也必须将 const 放在派生函数的末尾?
class A
{
public:
virtual int window (void) const
{
std::cout<<" We are in class A "<<std::endl;
return std::min(x,y); // x is smaller
}
private:
int x, y;
}
class B : public A
{
public:
virtual int window (void)
{
std::cout<<" We are in class B "<<std::endl;
return A::window ();
}
}
void main()
{
int z = window();
std::cout<<z<<std::endl;
}
输出应该是这样的
We are in class B
We are in class A
x
【问题讨论】:
-
对标题中的问题的简短回答是“是”。
标签: c++ class polymorphism