#include .h文件和.cpp文件有什么区别

来源:百度知道 编辑:UC知道 时间:2024/06/21 00:22:53
问题:假如我定义了一个类
#include <iostream>
class T{
public:void show(){
cout<<"hello"<<endl;
};
也可以写一个头文件加上类的实现。头文件名称为T2.h我在main函数中
#include "T2.h"

#include "T.cpp"
有什么区别。为什么要写一个.h文件。不写不是可以吗!
不明白。那位给解释一下。多多给分,追加50分
};
"2. 一般没有去include cpp文件的, include有两种:
include <xxx.h>"
为什么不直接引 cpp文件呢。想java一样。直接引类。有什么不妥吗??

个人观点,仅供参考 :)
include是模块编程里常用的,比如你在func1.cpp中定义了一个函数xxx,xxx声明在func1.h里,那你在func2.cpp中需要用到函数xxx,则需要把func1.h这个头文件include进来一起编译。
你的code里#include<iostream>是C++实现,C++中做了封装,所以后面不需要带.h。但有时候还需要加上以行using namespace std; 。
1. T.cpp 是C++文件,cpp = c plus plus
2. 一般没有去include cpp文件的, include有两种:
include <xxx.h>
在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找.
include "xxx.h"
使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。

也就是说,一般自带的库函数用<>,自己定义的跟源文件放在一起的用""
==============================
补充:
个人认为:cpp是源文件,自己内部实现的全在cpp中的,但这其中只有部分api其他地方需要用到;
因此就只需要将利用率高的api声明在.h里面,然后包含.h文件。
由于.h文件比较简单,故能大大提高链接编译的效率
个人观点,也不知道是否正确。

为了隐藏类的实现

使用者只能得到类的接口 也就是.h文件 由此可以知道类有什么成员、能做什么事情

但是不能得到类的实现 也就是.cpp 也就是类的源代码

说白了就是为了充分体现面向对象的思想
使得使用者只能得到类的接口 也就是.h 也就是能做什么
但是不能得到类的实现 也就是.cpp 也就是怎么做

很多时候函数的实现被做成.lib或.dll的形式来使用 我们是无法直接得到其文本代码的

k