Sorry. Sure, I'll try to be more specific. 
"Cv" prefix is C style of OpenCV, cv:: namespace is C++. So rename CvLR -> LogisticRegression, CvLR_TrainParams -> LogisticRegressionTrainParams and place them in cv:: namespace. Use cv::TermCriteria instead of CvTermCriteria (line 1999). 
In the implementation below there are CvMat, cvReadIntByName() ... and other similar C functions.

BTW there is one example of C++ ML model in OpenCV. See cv::EM. It's inherited from cv::Algorithm, but I think we may not inherit from cv::Algoritm because this class is changing now (for coming opencv 3.0). We also should not inherit from CvStatModel and should replace current read/write methods by the same API like cv::Algorithm has:

virtual void write(FileStorage& fs) const;
virtual void read(const FileNode& fn);

If I should give more details, please ask.