This change will break binary compatibility. 

Could you add new non-virtual function with new parameter and leave the existed functions unchanged:

    virtual float predict( const CvMat* sample, bool returnDFVal=false ) const;
    virtual float predict( const CvMat* samples, CV_OUT CvMat* results ) const;
    /* virtual */ float predict_( const CvMat* samples, CV_OUT CvMat* results, bool returnDFVal) const;