请问如何在static成员函数中调用非static成员函数?

sharc 2005-10-29 03:02:31
请给一下代码实现。static成员函数必须是inline吗?
...全文
396 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinall 2005-10-29
  • 打赏
  • 举报
回复
你需要知道的是“static成员函数没有this指针”。
那么如何调用非static成员函数呢?
你可以把你的static成员函数,看作和这个类不相干的函数看待!

这样,你可以传递对象指针,对象引用,都可以。
xiaocai0001 2005-10-29
  • 打赏
  • 举报
回复
看看下面这段代码:
在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;
}
sankt 2005-10-29
  • 打赏
  • 举报
回复
不一定
wzjall 2005-10-29
  • 打赏
  • 举报
回复
这好象不可以吧
xiaocai0001 2005-10-29
  • 打赏
  • 举报
回复
static成员函数必须是inline
------------------------
不必是~

请问如何在static成员函数中调用非static成员函数?
--------------------------------------
由于在使用static成员函数时, 并没有this指针, 所以, 在Static成员函数中, 需要传入非成员函数的对象.(我是这么理解的)

64,700

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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