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

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
这是怎么回事?
有什么解决方法吗???
...全文
178 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
加载更多回复(12)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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