У меня есть метод внутри класса Foo, который нужно вызвать free float function freeFloat. Однако вызов из него приводит к ошибке за пределами области видимости.
Foo.cpp: In member function ‘virtual bool Foo::method():
Foo.cpp:351:24: error: ‘freeFloat was not declared in this scope
freeFloat();
Структура кода выглядит примерно так:
class Foo {
public:
virtual void method() {
freeFloat();
}
};
int main(){
}
bool freeFloat(){
}
Это можно сделать? Если да, то считается ли это плохой практикой или в большинстве случаев ОК? Есть ли лучшее место для каждого метода?
Функция должна быть объявлена перед определением класса, если она ссылается на функцию. Любое имя в C++ должно быть объявлено до его использования.
Вам нужно объявить freeFloat
прежде чем вы сможете его назвать. Либо переместите определение функции в верхнюю, либо добавьте:
bool freeFloat();
наверху.
Вам нужно объявить функцию перед ее вызовом....
bool freeFloat();
class Foo {
public:
virtual void method() {
freeFloat();
}
};
int main(){
}
bool freeFloat(){
}