请问如何在static成员函数中调用非static成员函数?
请给一下代码实现。static成员函数必须是inline吗? 问题点数:20、回复次数:5Top
1 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2005-10-29 15:06:40 得分 0
static成员函数必须是inline
------------------------
不必是~
请问如何在static成员函数中调用非static成员函数?
--------------------------------------
由于在使用static成员函数时, 并没有this指针, 所以, 在Static成员函数中, 需要传入非成员函数的对象.(我是这么理解的)Top
2 楼wzjall(风)回复于 2005-10-29 15:16:55 得分 7
这好象不可以吧Top
3 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-10-29 15:18:23 得分 7
不一定
Top
4 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2005-10-29 15:23:11 得分 0
看看下面这段代码:
在Static函数里用成员对象.
#include <iostream.h>
class AType
{
int a;
public:
AType();
~AType();
static void Show(AType &at);
};
AType::AType()
{
a=10;
cout<<"AType Constructor Called.\n";
}
AType::~AType()
{
cout<<"AType Disconstructor Called.\n";
}
void AType::Show(AType &at)
{
cout<<at.a<<endl;
cout<<"Static Show() Called.\n";
}
int main()
{
AType at;
AType::Show(at);
return 0;
}
Top
5 楼sinall()回复于 2005-10-29 15:37:14 得分 6
你需要知道的是“static成员函数没有this指针”。
那么如何调用非static成员函数呢?
你可以把你的static成员函数,看作和这个类不相干的函数看待!
这样,你可以传递对象指针,对象引用,都可以。Top




