查看文章
 
静态成员函数与非静态成员函数之间的调用问题
2010年01月21日 星期四 11:59

(1)类成员函数可以调用类静态成员函数

#include "iostream.h"
class PT
{
public:
void A(){B();}
static void B(){}
private:
int a,b;
};
void main()
{
PT pt;
pt.A();
}

上面的程序可以正确运行

(2)类静态成员函数不可以调用类的成员函数

#include "iostream.h"
class PT
{
public:
void A(){}
static void B(){A();}
private:
int a,b;
};
void main()
{
PT pt;
pt.A();
}

这个程序在编译的时候会报错,error C2352: 'PT::A' : illegal call of non-static member function

注:因为类的静态成员函数在类创建的时候就要分配内存,它不依赖这个类的任何对象,而类的非静态成员函数只有在对象建立之后才会给分配内存空间,所以静态的成员函数不可以调用非静态的成员函数,而非静态的成员函数可以调用静态的成员函数。


类别:c++||添加到搜藏 |分享到i贴吧|浏览(182)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu