别笑我,请教 .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,大家别笑我,还望大家明示,最好能给个简单的例子,谢谢先!!!!

我在线等。。。。。。。。。。。。
...全文
155 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
exboy 2004-10-14
  • 打赏
  • 举报
回复
.h 文件一般是用来声明用的,如声明类,函数等,而.cpp文件一般是用来实现.h文件中所声明的的东西.
jijl2001 2004-10-14
  • 打赏
  • 举报
回复
我没有什么好说的,你没有看过c++的书吗
北京的雾霾天 2004-10-14
  • 打赏
  • 举报
回复
我的理解是:

如果用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是动态产生一个对象,需用指针类型变量

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧