别笑我,请教 .cpp 与 .h 的区别

daironghua 2004-10-13 06:41:43
小弟只知道一个叫源文件,一个叫头文件,但具体概念不懂,
例:我新建 一个类 Cmy,会产生一个 Cmy.cpp 与一个 Cmy.h,
1、我不知道把成员函数应该写在哪个文件中??
2、假如此类要引用一个 abc.h,那 #include <abc.h> 又该放那个文件中??
3、我要在Form1 中实例化 Cmy 类,请问是不是这样: Cmy exCmy=new Cmy; ?
此语句又是放 Form1.cpp 还是 Form1.h 中
————————————————————————————————————————
小弟初学VC.NET,大家别笑我,还望大家明示,最好能给个简单的例子,谢谢先!!!!

我在线等。。。。。。。。。。。。
...全文
101 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
exboy 2004-10-14
.h 文件一般是用来声明用的,如声明类,函数等,而.cpp文件一般是用来实现.h文件中所声明的的东西.
回复
jijl2001 2004-10-14
我没有什么好说的,你没有看过c++的书吗
回复
我的理解是:

如果用new 来实例化一个对象则这个对象是放到了堆里面,访问是通过指向它的指针来操作的.
如果不是用new来实例化则这个对像不会被放到堆里访问也不是通过指针来操作的.详细的东西我也不知道了,听高人的说.
回复
daironghua 2004-10-14
谢谢 dog_in_yellow(dog.in.yellow)

小弟昨天写了个测试:
Cwinpcap 类在 cap.h 中,am() 函数是写在 Cwinpcap 类中的,在 Form1.h 中是调用如下:

#include "cap.h"
......
......
private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
textBox1->Text=Cwinpcap::am();
}
---------------
程序运行正确,但我有点不明白,C#.NET 中调用类的成员函数,须先实例化此类(NEW),
VC.NET 中不用实例化吗??
回复
somedummy 2004-10-14
.h里面一般情况下只有接口的声明,而没有真正的实体的定义。但是这并不绝对,对于template来说,目前的绝大多数编译器不支持template的separation compile,所以只能把template的定义包含在.h文件里面和声明放在一起。

而.cpp一般是实现代码,把这样的实现文件单独编译,然后通过连接器链接目标文件,这样就叫做分离编译,这样的好处就是可以减少编译时间,每次修改了代码以后只要编译被修改的那一部分,然后重新链接就可以生成新版本的应用程序。

另外,更大的好处是可以将代码做成库的形式提供给用户,不暴露自己的代码,只要提供接口文件以及库文件,然后指示链接器去使用库文件就可以让链接器正确链接代码,生成正确的应用程序
回复
dog_in_yellow 2004-10-13
1、成员函数写在头文件里面
2、如果头文件中需要用到abc.h中的声明,则放在头文件中,否则可以放cpp文件
3、new是动态产生一个对象,需用指针类型变量
回复
相关推荐
发帖
VC.NET
创建于2007-09-28

7542

社区成员

.NET技术 VC.NET
申请成为版主
帖子事件
创建了帖子
2004-10-13 06:41
社区公告
暂无公告