我正在尝试将我的函数分离到另一个源文件中。但是我得到了关于add函数的多重定义的错误。
主源文件
Main.cpp
#include<iostream>
#include "myHeader.h"
using namespace std;
int main()
{
int result = add(1,2);
}
头文件"myHeader.h“
#include "calc.cpp"
int add(int, int);
其他源文件"calc.cpp“
int add(int a, int b)
{
return a+b;
}
根据我的理解,内联函数可以放在头文件中,也可以放在源文件中(带有内联关键字),默认情况下,编译器会尝试使用标头中定义的memeber函数。
我的问题是下面的源文件add.h
#ifndef ADD_H
#define ADD_H
class Add {
public:
int add(int a, int b);
};
#endif /* ADD_H */
add.cpp
#include <iostream>
#include "add.h"
inline int Add::add(int a, int b) {
std::co
以下是src1.c的内容:
#include <stdio.h>
extern int w;
//int go(char); // no need to declare here. WHY????
main(){
char a='f';
go(a);
printf("%d\n", w);
}
以下是src2.c的内容:
#include <stdio.h>
int w = 99;
int go(char t){
printf("%c\n%d\n",t,sizeof(t));
}
为什么在L