个人学习之C++ 头文件.h与.cpp

    最近在学习的过程中发现这个问题,因为是学习所以内容对网上的内容有很多参考


在一个C++程序中,只包含两类文件——.cpp文件和.h文件。


一。初步了解

1.头文件的作用:  方便函数的统一的声明                       

2.头文也是C++源代码,但不用编译,当.cpp文件需要时通过宏命令 “#include”包含进这个.cpp文件中

3.头文件的写法

#ifndef CIRCLE_H
#define CIRCLE_H //保护措施

//你的代码写在这里

#endif

eg.

在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下:

#ifndef CIRCLE_H
#define CIRCLE_H

class Circle
{
private:
    double r;//半径
public:
    Circle();//构造函数
    Circle(double R);//构造函数
    double Area();//求面积函数
};

#endif

要给出Circle类的具体实现,因此,在源文件夹里新建一个Circle.cpp的文件,它的内容如下:

#include "Circle.h"

Circle::Circle()
{
    this->r=5.0;
}

Circle::Circle(double R)
{
    this->r=R;
}

double Circle:: Area()
{
    return 3.14*r*r;
}

 最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下:

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

int main()
{
    Circle c(3);
    cout<<"Area="<<c.Area()<<endl;
    return 1;
}


二。那么头文件中到底可以写些什么呢

1.放变量和函数的声明.

2.类 (class)的定义,其中包含着数据成员和函数成员.

3..const对象的定义.

补充:const型即常对象,在任何情况下值都不改变。

4.static对象的定义.



三。C++编译模式 

    C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。比如,在文件a.cpp中定义 了一个全局函数“void a() {}”,而在文件b.cpp中需要调用这个函数。

    问题:如何跨文件调用函数

 1.定义头文件并include一下头文件

// file foo.h
# ifndef _FOO_H_
# define _FOO_H_
 
extern void sayHello();
 
# endif // _FOO_H_
 

// file foo.cpp
# include "foo.h"
# include <iostream>
 
using namespace std;
 
void sayHello()
{
     // say your hello
}
 

// file main.cpp
# include "foo.h"
 
int main()
{
    sayHello();
 
    return 0;
}

    其中函数需要定义为extern类型, 告诉编译器这个是外部的,要到其它文件去找。

eg.

//file1.cpp

    extern int a,b;

    int main(){

    cout<<a<<","<<b<<endl;

    return 0;    

}


  //file2.cpp

int a=3,int b=4;
  此时file中的a,b被赋值,extern用作变量声明,并不是定义。

 2.也可以直接#include "hello.cpp"  //听说不够专业

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值