C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)
头文件(.h): |
写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。
在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下):
#define CIRCLE_H
//你的代码写在这里
#endif
这样做是为了防止重复编译,不这样做就有可能出错。
至于CIRCLE_H这个名字实际上是无所谓的,你叫什么都行,只要符合规范都行。原则上来说,非常建议把它写成这种形式,因为比较容易和头文件的名字对应。
源文件(.cpp):
源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。
下面举个最简单的例子来描述一下,咱就求个圆面积。
第1步,建立一个空工程(以在VS2003环境下为例)。
第2步,在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下:
#define CIRCLE_H
class Circle
{
private:
double r;//半径
public:
Circle();//构造函数
Circle(double R);//构造函数
double Area();//求面积函数
};
#endif
注意到开头结尾的预编译语句。在头文件里,并不写出函数的具体实现。
第3步,要给出Circle类的具体实现,因此,在源文件夹里新建一个Circle.cpp的文件,它的内容如下:
Circle::Circle()
{
this->r=5.0;
}
Circle::Circle(double R)
{
this->r=R;
}
double Circle:: Area()
{
return 3.14*r*r;
}
需要注意的是:开头处包含了Circle.h,事实上,只要此cpp文件用到的文件,都要包含进来!这个文件的名字其实不一定要叫Circle.cpp,但非常建议cpp文件与头文件相对应。
最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下:
#include "Circle.h"
using namespace std;
int main()
{
Circle c(3);
cout<<"Area="<<c.Area()<<endl;
return 1;
}
注意到开头时有#include "Circle.h"的声明,证明我们使用到了我们刚才写的Circle类。
至此,我们工程的结构为:
运行一下,输出结果为:
说明我们写的Circle类确实可以用了。
C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)相关推荐
- C++中头文件(.h)和源文件(.cpp)都应该写些什么,头文件中的预编译语句作用,命名空间和头文件的区别与联系,内部链接和外部链接
1. C++中头文件(.h)和源文件(.cpp)都应该写些什么: 总结下来就是头文件写的就是类的声明(包括类里面的成员和方法的声明)和函数的声明,但一般来说不写出具体的实现.对应的同名(可以不同名,但 ...
- C++中头文件(.h)和源文件(.cpp)都应该写些什么
原文出处:https://www.cnblogs.com/fenghuan/p/4794514.html 头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等, ...
- Clion中使用头文件和源文件坑
Clion 中使用头文件定义类,源文件实现 include什么 导入头文件(.h)和源文件(.cpp) Note: 只导入 源文件(.cpp) 也可以 CMakeLists.txt 手动添加 cmak ...
- C++ 头文件和源文件
from:https://www.cnblogs.com/fenghuan/p/4794514.html C++中头文件(.h)和源文件(.cpp)都应该写些什么 头文件(.h): 写类的声明(包括类 ...
- (整理类)文件描述符,文件描述符标志,文件状态标志
感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...
- C语言后缀.h文件和.c文件作用和区别
简述C语言中.h文件和.c文件作用和区别 在c语言学习过程中,对.h文件和.c文件不甚了解,参考其他资料后对它进行简要分析: .h文件和.c文件作用 使用.h文件和.c文件的原因 .h文件和.c文件作 ...
- 简述C语言中.h文件和.c文件作用和区别
简述C语言中.h文件和.c文件作用和区别 在c语言学习过程中,对.h文件和.c文件不甚了解,参考其他资料后对它进行简要分析: .h文件和.c文件作用 使用.h文件和.c文件的原因 .h文件和.c文件作 ...
- 六类网线钳能压五类水晶头吗_一分钟自制高质量水晶头,如何区分超5类水晶头与6类水晶头?...
原标题:一分钟自制高质量水晶头,如何区分超5类水晶头与6类水晶头? 有些朋友提到如何制作标准的水晶头?能不能发一期水晶头制作的内容?弱电人平时制作水晶头可能是最多的,一个标准的水晶头制作可以减少网络中 ...
- linux ruby 删除文件,ruby 删除文件夹(包括文件夹中的文件夹和文件)
php 得到一个文件夹下的所有文件,包括子文件中的文件 $dir = FCPATH."uploads/attachment/"; $this->getFiles($dir); ...
最新文章
- UI学习第二篇 (控件)
- doc2vec介绍和实践
- 你的微服务网关还只在用负载均衡吗?
- matlab和C/C++混合编程--Mex
- 一次MySQL性能优化实战(转)
- 为什么hive需要mysql作为数据库_Hive安装(本地独立模式,MySql为元数据库)
- Linux—系统文件和目录介绍
- Java查询spark中生成的文件,spark原代码生成方法
- HIVE攻略 JFK_Hive安装及使用攻略
- 服务器克隆机网络端口排错
- linux qt创建静态库,QT创建与QT无关的纯C++程序和动态/静态库
- 我的Android进阶之旅------Android实现音乐示波器、均衡器、重低音和音场功能
- Postgresql Bloom索引
- 中国需要怎样的智慧城市联盟?中外41家联盟组织大起底
- Tube Downloader(视频下载工具)
- 【requireJS路径加载】与程序员小卡的交流
- java网络编程作业基于UDP简单聊天窗口,图形化界面,包含客户端和服务端
- grub 2.0安装linux,grub2引导安装kali2.0及安装ibus拼音输入法
- Python爬虫——aiohttp异步协程爬取同程旅行酒店评论
- 计算时针分针秒针夹角的方法
热门文章
- FIR设置过采样率 matlab,Xilinx FIR IP的介绍与仿真
- 2012年A题葡萄酒的评价论文与代码
- 呼市计算机应用那个职高好,呼和浩特职业高中哪个比较好
- python模拟键盘输入视频_python教程-模拟鼠标和键盘输入
- c++ 数组的数据保存二进制_Redis五种不同的数据类型
- python pexpect timeout_Python 的 pexpect 模块的问题
- 我有单片机,你有酒吗?
- 高级运维工程师证书_高级装配式工程师证书有什么用?
- python代码颜色不同_python – 两个不同颜色的颜色在同一个imshow matplotlib
- 1.1收集域名信息-完整介绍