Ваши типы возврата не совпадают:
//.h file:
class foo {
float useful(float, float); // <--- THIS ONE IS FLOAT ....
public:
int bar(float);
};
//.cpp file:
int foo::useful(float a, float b){ // <-- ...THIS ONE IS INT. WHICH ONE?
//does something and returns an int
}
int foo::bar(float a){
//how do I access the 'useful' function in foo?? eg something like
return useful(a, 0.8); //but this doesnt compile
}
Компилятор ищет определение функции, которое точно соответствует. Ошибка компилятора, которую вы получаете, вероятно, жалуется на то, что она а) не может найти float useful()
или б) не знает, что вы имеете в виду, когда говорите о int useful
.
Убедитесь, что они совпадают, и вызов useful
в пределах bar
должен работать просто отлично.