在类中调用自由浮动函数
Calling a free floating function within a class
我在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();
到顶部。
相关文章:
- 将自由函数绑定为类成员函数
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 为什么成员函数地址离自由函数这么远?
- 如何使用模板元编程在自由函数C++链接两个不相关的类
- C++ 20 中的运算符 == 和 <=> 应该作为成员还是自由函数实现?
- 如何在共享库中保留静态库中的自由函数
- 在C++项目中管理自由函数有哪些好的做法?
- 使用自由函数作为LPOVELAPPED_COMPLETION_ROUTINE
- 统一检查成员函数、自由函数和算子是否存在的方式
- 使自由函数的行为类似于成员函数 (C++)
- C++ std::stack 内容在离开函数时不会自由
- C++自由函数可以别名吗?
- 调用成员函数(如果存在),回退到自由函数,反之亦然
- ADL找不到模板化的自由函数
- 基于方法或自由函数存在的模板构造函数解析
- 如何在函数中分配的自由记忆
- G 未定义的引用自由函数
- 为什么未调用自由函数作为构造函数中的参数传递
- 在类中调用自由浮动函数
- 自由函数和继承