在类中调用自由浮动函数

时间:2014-02-27 04:47:44

标签: c++

我在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(){


}

可以这样做吗?如果是这样,它被认为是不好的做法还是在大多数情况下可以吗每种方法都有更好的位置吗?

3 个答案:

答案 0 :(得分:2)

如果函数引用函数,则应在类定义之前声明该函数。 C ++中的任何名称都应在使用之前声明。

答案 1 :(得分:1)

你需要在调用之前声明函数....

bool freeFloat();

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

};

int main(){ 

}

bool freeFloat(){


}

答案 2 :(得分:1)

您需要先声明freeFloat才能调用它。将函数定义移到顶部或添加:

bool freeFloat();

到顶部。