C ++, ¿Qué significa el colon después de un constructor? [duplicar]

Posibles duplicados:
Variables después del colon en un constructor
Pregunta de sintaxis del constructor C ++ (noob)

Tengo un código C ++ aquí:

class demo 
{
private:
    unsigned char len, *dat;

public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        dat = new char[len];                                      
        for (int i = 0; i <= le; i++)                             
            dat[i] = default;
    }

    void ~demo(void) 
    {                                            
        delete [] *dat;                                           
    }
};

class newdemo : public demo 
{
private:
    int *dat1;

public:
    newdemo(void) : demo(0, 0)
    {
     *dat1 = 0;                                                   
     return 0;                                                    
    }
};

Mi pregunta es, ¿cuáles son los: len(le) y: demo(0, 0) ¿llamado?

¿Tiene algo que ver con la herencia?

Respuestas a la pregunta(5)

Su respuesta a la pregunta