C++中.CPP文件与.h文件有什么不同。详解与举例怎么使用
以.h位后缀的是头文件,.cpp是源文件,一般都是在一个项目中。如果是初学c++的话,使用源文件(也就是.cpp)就足够编写出需要的源程序了。如书本上最基本的“Hello World”编码,只要在源文件中有一个主函数就可以完成一个程序。
在稍微复杂一点的程序中,也许就会用到头文件(.h)。事实上,这种头文件和代码中预处理里包含的头文件没有什么区别(就好像C语言中#include <stdio.h>)其中stdio.h就是一个头文件。
编写头文件就是按照自己的需要,给程序设计这样的头文件。头文件中,一般包含一些类的声明,函数定义之类的东西,方便在源文件的主函数中使用。
例如在a.h文件中:
#include <iostream>
using namespace std;
class Try
{
public:
void do();
}
接下来,只要在源文件b.cpp中的预处理命令里写成:
#include <iostream>
#include "a.h" (也就是在这里加上#include "a.h"这一句)
using namespace std;
.....
就可以在b.cpp的代码中声明和调用Try类型的对象了。
扩展资料
c++程序里使用多个cpp和h文件:
建立一个工程,里面有三个文件hello.hpp、hello.cpp、main.cpp
// hello.hpp
#ifndef HELLO_HPP
#define HELLO_HPP
class Hello
{
public:
void show() const;
};
#endif
====================
// hello.cpp
#include "hello.hpp"
#include <iostream>
using std::cout;
using std::endl;
void Hello::show() const
{
cout << "Hello World" << endl;
}
====================
// main.cpp
#include "hello.hpp"
int main()
{
Hello hello;
hello.show();
return 0;
}
参考资料来源:百度百科 - C++
如果是初学c++的话,使用源文件(也就是.cpp)就足够编写出我们需要的源程序了。
正如书本上最最基本的“Hello World”编码,只要在源文件中有一个主函数就可以完成一个程序。
在稍微复杂一点的程序中,也许就会用到头文件(.h)。
事实上,这种头文件和我们代码中预处理里包含的头文件没有什么区别(就好像C语言中#include <stdio.h>)其中stdio.h就是一个头文件。
我们亲手编写头文件就是按照自己的需要,给我们的程序设计这样的头文件。头文件中,一般包含一些类的声明,函数定义之类的东西,方便我们在源文件的主函数中使用。
例如:
在a.h文件中:
#include <iostream>
using namespace std;
class Try
{
public:
void do();
}
(具体定义我就省下不写了哈∩_∩。。。)
接下来,只要在源文件b.cpp中的预处理命令里写成:
#include <iostream>
#include "a.h" (也就是在这里加上#include "a.h"这一句)
using namespace std;
.....
就可以在b.cpp的代码中声明和调用Try类型的对象了。
嗯,差不多就这个意思。
嘿嘿,以上是我的一点理解,如果有不对的地方,请指正。
.h文件是声明文件,可以放类定义及声明:
#ifndef _EVENT_H_
#define _EVENT_H_
#pragma once
#include <string>
using std::string;
class Event
{
public:
Event(void);
~Event(void);
void InitEvent(int event_time,string event_address,string event_contents);
void CopyFrom(const Event& from);
void MergeFrom(const Event& from);
void Clear();
bool IsInitialized() const;
private:
int event_time;
string event_address;
string event_contents;
};
#endif
.cpp文件是实现文件,可以放类的定义:
#include "Event.h"
#include <string.h>
using std::string;
Event::Event(void)
{
}
Event::~Event(void)
{
}
void Event::InitEvent(int time,string address,string contents)
{
event_time = time;
event_address = address;
event_contents = contents;
}
......
.cpp文件时源文件,放的是对类的定义什么的
所以.cpp文件要加include相应的.h头文件