1.C语言和C++的对比
(1)创建文件的后缀名不同,如果创建C语言的文件通常以.c结尾,而C++通常以.cpp结尾。
<1>这里就想要补充两个文件的概念,什么是.c文件?什么是.cpp文件?什么是.h文件?
头文件(.h):
写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。
源文件(.cpp):
源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。
.h和.cpp文件的搭配这里搬运一下的例子(很详细的介绍了.h和.cpp的关系,忘了可以去看下)C++中头文件(.h)和源文件(.cpp)分别有什么用_Yi Sun的博客-CSDN博客
下面举个最简单的例子来描述一下,咱就求个圆面积。
第1步,建立一个空工程(以在VS2019环境下为例)。
第2步,在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下:
(不清楚什么是define,预编译的时候,看下#define用法,C语言#define详解)
#pragma once
#ifndef CIRCLE_H
#define CIRCLE_H
class Circle
{
private:
double r;//半径
public:
Circle();//构造函数
Circle(double R);//构造函数
double Area();//求面积函数
};
#endif
注意到开头结尾的预编译语句。在头文件里,并不写出函数的具体实现。
第3步,要给出Circle类的具体实现,因此,在源文件夹里新建一个Circle.cpp的文件,它的内容如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include "Circle.h"
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文件与头文件相对应。就相当于你要吃饭了,但是没有餐具。而前面的#include"Circle.h"就是可以让你领一套准备好的餐具直接用,所以.cpp文件和.h文件是相互搭配使用的。
最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include "Circle.h"
using namespace std;
int main()
{
Circle c(3);
cout << "Area=" << c.Area() << endl;
return 1;
}
运行main.cpp后成功了,说明可以使用。(只是体会下两者的关系,小白还没学到那么深的项目。)
相信到这,你已经明白两者的关系了。