一个关于两个类之间的函数的相互调用问题?(在先等待)急!!

yuqi791102 2002-08-02 04:16:23
我在CPage1类中有一个函数名为
Request(float str_x,float str_y,float endpoint_x,float endpoint_y,float scal)
我想在我的view中调用这个函数
我使用了
CPage1::Request(ptrx[g-1],ptry[g-1],ptrx[0],ptry[0],myData[i].Vertex[t].z)
但在DEBUG窗口中却提示
error C2352: 'CPage1::Request' : illegal call of non-static member function
这是怎么回事?
有什么解决方法吗???
...全文
108 点赞 收藏 32
写回复
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
howtotell 2002-08-02
有一些在很多类里边都要用的变量可以定义在
stdafx.cpp
例如 CString ttt;
中,也就是定义成全局变量,然后在各个类中extern CString ttt;
回复
sekfore 2002-08-02
除非你那个函数是静态函数。。。。
回复
shuizhongtu 2002-08-02
我帮
up
回复
Cuteric 2002-08-02
各位高手看看,或者帮我up一下,我up不了了。
http://www.csdn.net/expert/topic/919/919723.xml?temp=.7951471
回复
jkljf 2002-08-02
没有实例化对象,除非你程序中没有用到你定义这个对象中的成员或者函数,又或你是不是在你的程序的其他地方自己又生成了你的对象中定义的成员变量,比如一个整型变量int i什么的,才导致你的程序一种巧合的正确而不是错误?
回复
ynyn 2002-08-02
那我就真的没有办法理解你目前的问题了
回复
孙亖 2002-08-02
CMyClass obj1,obj2;
if(obj1.data==obj2.data)
printf("这是巧合或它们真的相等");
回复
yuqi791102 2002-08-02
可是我在没有声明obj的时候
程序照样运行
并且正确
回复
ynyn 2002-08-02
faint,我说过,在你实例化之前是什么都没有的,仅当你实例化以后,你才可以通过实例来调用类中的函数,而此时你所赋值的那个mydata是属于调用赋值函数的那个实例的
回复
孙亖 2002-08-02
回复
yuqi791102 2002-08-02
我确实没声明类的实例,我只是在类中的函数中进行操作
在什么地方看它是哪个实例
回复
ynyn 2002-08-02
你在类里面怎么存数?你这样的类没有实例化根本是没用的,如果你是说在类中你有一个函数用来给myData赋值的话,它一样是需要有一个实例来调用的,如果你调用它的实例是在别的地方创建的,而不是view中的obj的话,它们的两者中mydata的值当然是不一样的
回复
yuqi791102 2002-08-02
我说的意思是我是在CPage1类中存的数,此时的类实例是什么呢
是在view中构造的obj吗
回复
ynyn 2002-08-02
我不是很明白,你的表述实在不是很清楚,首先myData一定也是obj的一个成员变量,所以构造obj的时候一定会构造出一个myData,至于你说的存数,我不知道是什么意思,它是在什么地方做的操作,操作的对象又是谁呢?
回复
jingyad 2002-08-02
静态函数是属于类的,成员函数是属于对象的
所以静态函数可以使用CClass::AStaticFunc()的方式调用
而成员函数则必须:
CClass aObject;
aObject.AMemberFunc();
一般情况下只有用来提供独立服务的函数才使用静态函数,例如CTime::GetCurrentTime()等。看你的Request应该不属于这种函数,所以还是必须先构造一个对象,然后再调用。当然对象的调用必须正确
回复
yuqi791102 2002-08-02
不是呀
我构造obj是在view中生成的
而我存数的时候我没构造mydata
两个myData 一样吗
回复
ynyn 2002-08-02
faint,怎么越说越乱了呢?myData是CPagel中的一个成员变量对不对? Paris_Luo说的obj是在view中的CPagel类的对象,那么在构造obj的时候myData当然也构造了,不需要怎么做呀
回复
yuqi791102 2002-08-02
也将myData定义成obj的成员变量,这样构造obj的时候,就同时构造了myData
具体怎么构造呢
我在CPage1类中也要用到mydata的
具体怎么做???
回复
yuqi791102 2002-08-02
还有个问题程序中有个键,按下后可执行一些功能,可是我在运行时按下这个键,他就蹦出一个对话框说“内存不足”,这是怎么回事?
回复
Paris_Luo 2002-08-02
也将myData定义成obj的成员变量,这样构造obj的时候,就同时构造了myData
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告