在类中调用自由浮动函数

Calling a free floating function within a class

本文关键字:函数 自由 调用      更新时间:2023-10-16

我在Foo类中有一个方法,需要调用自由浮动函数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++中的任何名称应在使用前声明。

你需要在

调用它之前声明该函数。

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

}
您需要

先声明freeFloat,然后才能调用它。将函数定义移到顶部或添加:

bool freeFloat();

到顶部。