我很擅长在c ++中使用头文件,而且我在使用另一个源文件中的方法时遇到了问题。我已将源文件与头文件链接在一起。
definition.cpp:
#include "header.h"
int c::foo (int bar){
return bar;
}
function_call.cpp:
#include "header.h"
int c::other_function( int num ){
int b = foo(num);
return b;
}
header.h:
#ifndef HEADER_H_
#define HEADER_H_
class c {
public:
int foo(int bar);
}
#endif /*HEADER_H_*/
我在我的function_call.cpp上收到编译错误:
error: 'foo' was not declared in this scope
我忽略了什么吗?
答案 0 :(得分:2)
我认为
class c {
public:
foo(int bar);
}
应该是
class c {
public:
int foo(int bar);
}
如果没有明确设置其返回类型,则无法声明函数。
要使您的示例有效,您还需要在other_function
中声明header.h
并至少拥有一个main
功能。
答案 1 :(得分:0)
我认为您应该在源文件中声明函数原型,其中包含一个类通过头文件,就在包含部分之后。