栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

书接上回,将类拆分至头文件

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

书接上回,将类拆分至头文件

Circle.h

#pragma once
#include
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 //标准输入输出
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)
{
    

    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
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 //标准输入输出
using namespace std; //标准命名空间

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

创建源文件

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

保留所有的函数实现。

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/291523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号