关于C++文件结构的问题

以下三个文件报错:[Error] ld returned 1 exit status
类的定义(未命名3.h)
class Point
{
public:
Point(int x=0, int y=0):x(x),y(y){}
Point(const Point &p);
~Point(){ count--; }
int GetX() const{return x;}
int GetY() const{return y;}
static void GetC();

private:
int x,y;
static int count;
};
类的实现
#include "未命名3.h"
#include
using namespace std;
int Point::count=0;
Point::Point(const Point &p):x(p.x),y(p.y)

{
count++;
}
void Point::GetC(){
cout<<" Object count="< }
主函数
#include "未命名3.h"
#include
using namespace std;
int main()
{
Point A(4,5);
cout<<"Point A,"<<A.GetX()<<","<<A.GetY();
A.GetC();
Point B(A);
cout<<"Point B,"<<B.GetX()<<","<<B.GetY();
B.GetC();
return 0;
}
求教为什么无法编译

 文件包含就是把被包含文件“机械地”插入到包含指令对应的位置。相当于你打开被包含文件ctrl+a ctrl+c,打开包含文件,删除include那行,并且再按下ctrl+v的效果。
你的代码,由于两次包含头文件,导致定义重复了。为了避免定义重复,你可以打开未命名3.h

#ifndef "未命名3_H"
#define "未命名3_H"

class Point
{
public:
    Point(int x=0, int y=0):x(x),y(y){}
    Point(const Point &p);
    ~Point(){  count--; }
    int GetX() const{return x;}
    int GetY() const{return y;}
    static void GetC();

private:
    int x,y;
    static int count;
};

#endif

这样不管你include几次,都只插入一次,后面的被忽略。