如何将类拆分至头文件

Circle.h

#pragma once
#include<iostream>
using namespace std;
#include"Point.h"

class Circle
{
private:
    int m_R = 0;
    Point Center;

public:
    void setR(int r);

    int getR();

    void setCenter(int x, int y);

    void judgement(Point& P);
};

    
Point.h

#pragma once //防止头文件重复包含
#include<iostream> //标准输入输出
using namespace std; //标准命名空间

class Point
{
private:
    int m_X;
    int m_Y;

public:
    void setX(int x);

    void setY(int y);

    int getX();

    int getY();

};

Circle.cpp

#include"Circle.h"

void Circle::setR(int r)
{
    m_R = r;
}

int Circle::getR()
{
    return m_R;
}

void Circle::setCenter(int x, int y)
{
    Center.setX(x);
    Center.setY(y);
}

void Circle::judgement(Point& P)
{
    /*cout << P.getX() << endl;
    cout << getCenterX() << endl;
    cout << P.getY() << endl;
    cout << getCenterY() << endl;*/

    int distance = (P.getX() - Center.getX()) * (P.getX() - Center.getX())
        + (P.getY() - Center.getY()) * (P.getY() - Center.getY());

    //cout << distance << endl;
    if (distance < (getR() * getR()))
    {
        cout << "点在圆内" << endl;
    }
    else if (distance == (getR() * getR()))
    {
        cout << "点在圆上" << endl;
    }
    else
    {
        cout << "点在圆外" << endl;
    }
}
 

Point.cpp

#include"Point.h"

void Point::setX(int x)//Point::成员函数说明
{
    m_X = x;
}
void Point::setY(int y)
{
    m_Y = y;
}
int Point::getX()
{
    return m_X;
}
int Point::getY()
{
    return m_Y;
}
 

case_circle.cpp(主文件)

#include<iostream>
using namespace std;
#include"Circle.h"
#include"Point.h"

int main()
{
    Point P;
    P.setX(3);
    P.setY(4);
    
    Circle C;
    C.setCenter(0, 0);
    C.setR(5);
    C.judgement(P);

    system("pause");
    return 0;
}

发现经拆分后,主文件将会变得十分简洁,类的声明与类中成员函数的实现拆分开来便于管理,将各个文件进行拆分也有利于分工合作。

拆分方法:

创建头文件

#pragma once //防止头文件重复包含
#include<iostream> //标准输入输出
using namespace std; //标准命名空间

将原本的函数复制进来,将函数的实现删除,末尾加上分号进行补全。

创建源文件

#include"Point.h"//包含头文件

保留所有的函数实现。

发现报错,注意加上作用域Point::。

最后shift+tab,进行格式缩进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值