e4611.cpp
オーバーライドのし忘れ?




/* 警告: B:e4611: オーバーロードされている仮想関数 "Parent::print" は、class "Child" で一部のみオーバーライドされています */
#include <iostream>
using namespace std;
class Parent
{
virtual void print(int age) const
{
cout << age << "才の父です" << endl;
}
virtual void print() const
{
cout << "父です" << endl;
}
};
class Child : public Parent
{
virtual void print(int age) const
{
cout << age << "才の子供です" << endl;
}
/* virtual void print() constがオーバーライドされていない */
};
解説
オーバーロードされた仮想メンバ関数の一部のみがオーバーライドされているため、
残りをオーバーライドし忘れているかもしれません。