Вызов свободно плавающей функции в классе

0

У меня есть метод внутри класса 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(){


}

Это можно сделать? Если да, то считается ли это плохой практикой или в большинстве случаев ОК? Есть ли лучшее место для каждого метода?

Теги:

3 ответа

2
Лучший ответ

Функция должна быть объявлена перед определением класса, если она ссылается на функцию. Любое имя в C++ должно быть объявлено до его использования.

  • 0
    Уф! Это было просто. Спасибо
1

Вам нужно объявить freeFloat прежде чем вы сможете его назвать. Либо переместите определение функции в верхнюю, либо добавьте:

bool freeFloat();

наверху.

1

Вам нужно объявить функцию перед ее вызовом....

bool freeFloat();

class Foo {
 public:
     virtual void method() {
         freeFloat();
     }

};

int main(){ 

}

bool freeFloat(){


}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню