The_Icer 2016-07-15 05:57 采纳率: 62.5%
浏览 1014
已采纳

关于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;
}
求教为什么无法编译

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-07-15 09:47
    关注
     文件包含就是把被包含文件“机械地”插入到包含指令对应的位置。相当于你打开被包含文件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几次,都只插入一次,后面的被忽略。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?