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がオーバーライドされていない */ };
解説 オーバーロードされた仮想メンバ関数の一部のみがオーバーライドされているため、 残りをオーバーライドし忘れているかもしれません。