黑马程序员技术交流社区

标题: 为何我不能在一个类的方法里调用另一个类的静态方法? [打印本页]

作者: 可见    时间: 2012-3-10 12:27
标题: 为何我不能在一个类的方法里调用另一个类的静态方法?
但是直接在函数里调用就可以?
可能没怎么说清楚,附代码:
当我直接在函数里调用:
void DoSHAExecution ( ) throw()
{
     // Create Callback
    IShaCallbackPtr callback = NULL;
    callback = ShaCallback::CreateInstance(binding);
    .....
}
是正常的。
当时当我把它写在类方法里:
void Sha::DoSHAExecution (WriteEventLog * writeEventLog,WCHAR action) throw()
{
    // Create Callback
    IShaCallbackPtr callback = NULL;
   callback = ShaCallback::CreateInstance(binding);
    ....
}
报错看图

1.bmp (106.72 KB, 下载次数: 128)

1.bmp

作者: lucky_xingxing    时间: 2012-3-10 16:20
你这个 两个冒号是 什么东西啊  从来没见过
作者: 贠(yun)靖    时间: 2012-3-10 16:45
static使用注意事项       
                 静态方法只能访问静态成员变量和方法。       
                 静态方法中不可以定义this,super关键字,因为静态优先于对象存在。
优点:对对象的共享数据进行单独空间存储,节省空间,没必要每一个对象都存储份。
               
缺点:生命周期过长。访问出现局限性(静态只能访问静态的)





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2