Hi...
I am quite new to C++ (but no to programming or OOP) so, I have some questions specific to C++ syntax, etc I hope you can help me as you did when I was trying to learn C

I have a Class like: (I am using the C based openCV library)
(IplImage is a structure so I want to get returned a pointer to the structure created inside each method, This would have perfect sense in Objective-C)
Code:
#include "cv.h" 
#include "highgui.h"
class CylindricalWarper{
	private:
	float fx,fy; //focal lenght
	float cx,cy; //optical center
	float k1,k2; //radial distorition coeficients
	public:
	void InitInstance(CString cameraString);
	IplImage * CorrectDistortion(IplImage *image);
	IplImage * CylindricalWarp(IplImage *undistorted);
};
And My questions are
1. Do I need a SuperClass? (ie: class CylindricalWarper:Warper{... )or is up to me?
and what is the most basic Class (which all objects inherit from) in C++

2. When I compile it I got two errors: error C2440: 'initializing' : cannot convert from 'void *' to 'IplImage *'
Each one in the first line inside CorrectDistortion method and CylindricalWarp method.
I think it is not just like C when you write something like
Code:
IplImage * correctDistortion(IplImage *);
What is the correct way?

3. What is the meaning and what is used for the word "virtual" ?

Any response would be very appreciated.
Regards
Ignacio.


PD: this task could be accomplished without classes but just for learning purposes I decided to make such a class