c++ 类的头文件和源文件拆分
这里说一下我一开始犯的错误
在这一步是我头文件创建的是cpp,导致后面一直报错,我还不知道错在哪,简直哭唧唧!!!
以点跟圆的关系为例
创建了一个圆类和点类(请不要学我不会英语打拼音,我是英语渣渣呜呜呜)
下面是完整源码
#include <iostream>
using namespace std;class point //点
{private:int x;int y;
public://设置void setx(int mx){x = mx;}//获取int getx(){return x;}void sety(int my){y = my;}int gety(){return y;}
};class yuan
{private:int r;//半径//在类中可以让另一个类成为本类成员point center;//圆心
public://设置圆半径void setr(int mr){r = mr;}//获得圆半径int getr(){return r;}//设置圆心void setcenter(point mcenter){center = mcenter;}//获得圆心point getrenter(){return center;}
};//判断点和圆的关系函数
void panduan(yuan &c,point &p) //用地址传节省空间
{//两点之间距离的平方(圆心到点的距离的平方)double d1 = (c.getrenter().getx() - p.getx()) * (c.getrenter().getx() - p.getx()) +(c.getrenter().gety() - p.gety()) * (c.getrenter().gety() - p.gety());//半径的平方double d2 = c.getr() * c.getr();if (d1 == d2){cout << "点在圆上" << endl;}else if (d1 < d2){cout << "点在圆内" << endl;}else{cout << "点在圆外" << endl;}
}int main()
{//创建圆yuan c;c.setr(10);point center;center.setx(10);center.sety(0);c.setcenter(center);point p;p.setx(10);p.sety(0);panduan(c, p);//创建点system("pause");return 0;
}
下面就是拆分
分步重要解释我写在代码中了嗷
1.创建点类头文件(h)
#pragma once//防止头文件重复声明
#include <iostream>
using namespace std;//删除所有函数实现,只保留函数声明和变量声明,并加上分号
class point //点
{private:int x;int y;
public://设置void setx(int mx);//获取int getx();void sety(int my);int gety();
};
2.创建点类源文件(cpp)
#include "point.h"//包含这个头文件下面的函数才能用//留下函数实现
//设置
void point::setx(int mx) //point:: point作用域下的函数
{x = mx;
}
//获取
int point::getx()
{return x;
}void point::sety(int my)
{y = my;
}
int point::gety()
{return y;
}
圆类同理
注意中间加了point的头文件,因为中间用了点类
#pragma once
#include <iostream>
using namespace std;
#include "point.h" //point头文件class yuan
{private:int r;//半径//在类中可以让另一个类成为本类成员point center;//圆心
public://设置圆半径void setr(int mr);//获得圆半径int getr();//设置圆心void setcenter(point mcenter);//获得圆心point getrenter();
};
#include"yuan.h"//设置圆半径void yuan::setr(int mr){r = mr;}//获得圆半径int yuan::getr(){return r;}//设置圆心void yuan::setcenter(point mcenter){center = mcenter;}//获得圆心point yuan::getrenter(){return center;}
创建好后在主函数中的使用
加上俩头文件即可
#include <iostream>
using namespace std;
#include "point.h"
#include "yuan.h"//判断点和圆的关系函数
void panduan(yuan& c, point& p) //用地址传节省空间
{//两点之间距离的平方(圆心到点的距离的平方)double d1 = (c.getrenter().getx() - p.getx()) * (c.getrenter().getx() - p.getx()) +(c.getrenter().gety() - p.gety()) * (c.getrenter().gety() - p.gety());//半径的平方double d2 = c.getr() * c.getr();if (d1 == d2){cout << "点在圆上" << endl;}else if (d1 < d2){cout << "点在圆内" << endl;}else{cout << "点在圆外" << endl;}
}int main()
{//创建圆yuan c;c.setr(10);point center;center.setx(10);center.sety(0);c.setcenter(center);//创建点point p;p.setx(10);p.sety(0);panduan(c, p);system("pause");return 0;
}
同理可得其他类的拆分
c++ 类的头文件和源文件拆分相关推荐
- C++类模板怎么写在单独的头文件和源文件中
今天打算研究研究之前我们领导写的一段关于类模板的代码,后来发现有点坑需要记录一下.以往关于C++模板基本上都是写一个demo,然后运行通过,没有软件工程的样子,所以今天我按以往的惯例写了一个类模板,打 ...
- C++ 笔记(25)— 理解 C++ 中的头文件和源文件的作用
1. C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件: .cpp 文件,被称作 C++ 源文件,里面放的都是 C++ 的源代码 .h 文件,被称作 C++ 头文件,里面放的也是 C++ ...
- c 中头文件和源文件的区别是什么
区别:头文件是".h"文件,提供接口:源文件是".cpp"文件,提供实现.编译器规定源文件必须包含函数入口,即main函数:而头文件不得包含函数入口,头文件不可 ...
- C++头文件和源文件,编译过程
源文件如何根据#include来关联头文件 1.系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找. #include <xxx.h> 2.用户自定义的文件用双引号括起来, ...
- C++头文件和源文件的编译过程
源文件如何根据#include来关联头文件 1.系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找. #include <xxx.h> 2.用户自定义的文件用双引号括起来,编 ...
- C语言头文件和源文件差异,#include两种引用方式差异
一些初学c语言的人,不知道头文件(*.h文件)原来还可以自己写的.只知道调用系统库函数时,要使用#include语句将某些头文件包含进去.其实,头文件跟.c文件一样,是可以自己写的.头文件是一种文本文 ...
- 什么是c 语言中源文件,C++中头文件和源文件详细介绍
C++中的头文件和源文件详解 一.C++编译模式 通常,在一个C++程序中,只包含两类文件--.cpp文件和.h文件.其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码:而.h文件则被称 ...
- C语言中头文件和源文件的注意事项
C语言中头文件和源文件的注意事项 文章目录 C语言中头文件和源文件的注意事项 0.前言 1.实现步骤 1.1 拆分前 1.2 拆分后 2.总结 2.1头文件内容 2.2 源文件(.c)内容 2.3 函 ...
- C++中的头文件和源文件:如何写头文件
C++中的头文件和源文件 转自:博客园http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.html 一.C++编译模式 通常,在一个C++ ...
- c++中头文件和源文件的区别
区别: 一般来说头文件提供接口,源文件提供实现 编译器规定源文件必须包含函数入口,即main函数.而头文件不得包含函数入口,头文件不可以单独编译成一个程序,仅仅包含程序片段或者定义常,变量. 头文件专 ...
最新文章
- 基于React与Redux的留言墙的实现
- 方舟服务器如何修改恐龙,方块方舟人物及驯养恐龙属性修改教程 人物属性怎么修改_游侠网...
- 302 found是什么意思_犯罪大师心中的恶魔答案是什么 心中的恶魔答案真相分析...
- Spring MVC 流程图解析
- Hadoop分布式文件系统HDFS的工作原理详述
- CCIE基础知识之EIGRP 二
- 荣耀双十一开门红:斩获多品类销量及销售额冠军
- 拼接播放地址_西安户外did拼接屏批发业务广泛_金伟达电子
- 中小企业信息网络安全解决方案
- python调用图灵机器人实现微信公众号的自动回复功能(下)
- 添加w3c验证图片到网站
- java 滚动歌词_基于JavaScript怎么实现让歌词滚动播放
- java 银联支付_java服务器端移动银联支付的流程
- 串行通信 - Modbus协议
- 电脑ping手机该怎么玩(很多网友都说电脑ping不通手机)?
- db4o官方停止支持及面向对象数据库的一些感想
- listen函数详解
- c# php 时间戳,C#实现时间戳的简单方法
- 单词拼写校正原理及实现(贝叶斯推断)
- python中item是什么意思中文-Python中items()系列函数的用法详解