: :请教:
解决方案 »
- 我想在函数里写方法 为什么报错呢
- cximage加载大图片两次时的问题! 不能显示图片了
- 再Header Files文件夹下建立了一个文件夹drivers
- CComObject 能否象智能指针一样绑定接口?
- 关于radio button的问题,是否可把radio button 设置成为类的变量?
- ATL做COM时,如何实现一个接口具有一个属性,这个属性是一个double型的数组
- 急需#字游戏源代码!!
- 如何在程序中使用Excel 编辑打印报表?(在线等待,我总共只有74分了)
- 谁做过斗地主的记牌器
- 包含winsock2.h编译出错是怎么回事呀?
- 急救:如何写IE插件?
- 用gethostname得到的结果怎么会乱码?
比如在头文件MyClass.h中你定义了一个类:
class MyClass
{
public:
MyClass();
virtual ~MyClass();
int nVal;
private:
int len;
int capacity;
char *pClassContent;
};
然后在文件MyClass.cpp中你可以编写这些函数的实现:
MyClass::MyClass()
{
pClassContent=new char[1024];
capacity=1024;
len=0;
nVal=10000;
}MyClass::~MyClass()
{
delete pClassContent;
}
这样在其他地方使用这个类时当用MyClass定义一个变量时
MyClass myA;
到这句话时就会自动调用类的构造函数MyClass::MyClass(),于是以后myA中的值就有了确定的值,MyA.nVal就等于10000了,而myA.pClassContent也预先分配了1024字节的空间,这些是通常的做法。而如果你愿意,你也可以在MyClass::MyClass()里面打开文件进行读入,或创建线程,打开窗体等都可以干。这些东西任何一本vc的书上都有,本来应该由你自己去领会,我不应该给你讲的,但因为我说错了话,怕误导你,所以还是说清楚的好。如果你对这些已经滚瓜烂熟了,只是想了解MFC的工作过程的话,你应该去看《深入浅出MFC》,那上面讲了各种windows程序窗口生成的来龙去脉。祝你好运!lucky!enjoy!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你这句话好像是问系统都给你的类分配了什么资源,是的,系统只给类的变量分配新的资源,而一个类的所有实例的函数都是共用同一段内存空间(除了虚函数),只是调用函数时传入的变量不同罢了,运行时结果又存回各自实例的变量中。这些在《深入浅出MFC》中也有详细叙述。假如上面的类中还有一个函数int MyFun();
int MyClass::MyFun()
{
return nVal;
}
使用
MyClass myA,myB;
myB.nVal=200;
时内存中只有一份MyFun(),两个实例MyA,MyB都使用这同一个函数,但各自的变量都是分开的,调用myA.MyFun()将返回myA.nVal,即10000,myB.MyFun()将返回myB.nVal,即200。