函数调用多个C ++源文件

时间:2018-04-01 04:34:20

标签: c++ header-files declaration definition

我很擅长在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

我忽略了什么吗?

2 个答案:

答案 0 :(得分:2)

我认为

class c {

public:
foo(int bar);
}

应该是

class c {

public:
int foo(int bar);
}

如果没有明确设置其返回类型,则无法声明函数。

要使您的示例有效,您还需要在other_function中声明header.h并至少拥有一个main功能。

答案 1 :(得分:0)

我认为您应该在源文件中声明函数原型,其中包含一个类通过头文件,就在包含部分之后。