关于VC开发中的函数调用问题

关于MFC库函数与调用SDK函数调用格式的问题:  
    比如在一个对话框的OnOk函数中,我使用了GetDlgItemText(IDC_COMBO1,str);编译运行也都通过了,通过参数形式知道,这里调用的是MFC函数。在这里该MFC函数并没写成obj.functionName()的形式,而是直接写成了functionName()的形式,我想知道:  
        a)在什么情况下,可以这么写。  
        b)如果我想调用的是SDK函数,是不是也直接写成functionName()的形式,只不过参数不同而已,这时编译器是不是通过参数的形式来判断调用的究竟是SDK函数还是MFC函数。  
        c)还有这样的语句:CTime   t   =   CTime::GetCurrentTime();这里直接用了“类名::成员函数”的形式,请问什么时候可用这种形式。  
        d)还有这样的形式,直接用“::函数名”来调用函数,这是怎么回事,何时可用这种方法?  
  多谢大侠指点迷津。  

 

首先我们在VC中加函数改函数都是在.cpp或.h文件中也就是说在一个类中,我们加的函数或变量其实就是相应类的成员函数或数据变量。而该类一般都是由相应的父类继承下来的
a) 当functionName()函数是该类的成员函数或从父类中继承下来的成员函数时,就不用写成obj.functionName()的形式,因为函数也是该类的中的成员,用自己的东西不用那么“拘束礼节”

b)api函数(SDK)不存在类,mfc是封装api函数后形成的类。可以这样想API是MFC的老大,MFC是有API继承下来的(不恰当的想法),所以MFC中往往会有函数名和API中的相同,有点象重载。window的api都是全局函数,mfc的函数大部分都在类中,调用API函数前要加::说明是window api的函数,而调用mfc的函数就不需要了。

c)在这里GetCurrentTime()是CTime的静态成员函数,可以没有实例的时间调用
    一般 用到“类名::成员函数”这种调用形式的   
       1.   调用父类的成员函数,假如自己的成员函数与父类的函数名一样可加以区分, 要加上父类名。   
       2.   就是上面说的当函数是类的静态成员时   

d) 参考b)的意见

以上为个人能力的理解望高手指点。
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值