函数重定义错误
#ifndef ORT_H
#define ORT_H
#include<cmath>
#include<iostream>
class Ort
{
public:
Ort(int einX=0, int einY=0);
int getX() const;
int getY() const;
void aendern(int x, int y);
private:
int xKoordinate;
int yKoordinate;
};
void Ort::aendern(int x, int y)
{
xKoordinate=x;
yKoordinate=y;
}
#endif
这是头文件。aendern的实现就放在头文件中。那么问题来了:
编译结果是aendern重定义。但是如果给aendern加上inline关键字的话,错误就消失了。另外把实现分离出头文件也能运行正常
请问为什么会这样,具体是什么原理。