prototype applies specifically to functions, and in that context, a prototype is the same as a declaration:
Code:
int getSomeNumber();
a class can have a (forward) declaration:
but the class definition would be like so:
Code:
class someClass
{
public:
someClass();
};
now a function definition is the part that actually contains the code, like from our above example:
Code:
int getSomeNumber()
{
return 3; // 3 is the most random number available
}
a function definition is also sometimes referred to as its implementation, and defining/implementing a standalone function - that is, not a class member - effectively also declares it.
note that in my class example that the constructor is declared, but there is no code, so it is not defined, although the class can be considered defined at this point. the definition/implementation of the constructor might look like this:
Code:
someClass::someClass()
{
// do some initialization
}