salve a tutti mi sto esercitando sulla programmazione ad oggetti in c++ e stavo facendo un piccolo progetto ma ho il seguente problema vi posto il codice

ho creato questa classe chiamandola commercialista.h

#include <iostream>

using namespace std;

class Commercialista {

public:
float importo;
float cp;
float CalcoloCp(float);
float ImmettiImp();
float Scritture();

};

poi ho creato un altro file chiamandolo funct_comm.cpp

#include <iostream>
#include "commercialista.h"

using namespace std;

float Commercialista::ImmettiImp() {
cout <<"immetti importo "<<endl;
cin >>importo;


}

float Commercialista::CalcoloCp() {
cp = importo * 0.04;


}

float Commercialista::Scritture() {

cout <<"l importo e "<<importo<<endl;
cout <<"il cp e "<<cp<<endl;

}

e infine il main

#include <iostream>
#include "commercialista.h"

int main() {

Commercialista com;
com.ImmettiImp();
com.Scritture();
}

il mio problema sta nel metodo CalcoloCp() non riesce a fare l operazione che mi interessa mi da un numero casuale... ma invece se gli faccio fare l operazione nel metodo ImmettiImp() funge... dove sbaglio?