当前位置:  开发笔记 > 编程语言 > 正文

C++函数指针和类

如何解决《C++函数指针和类》经验,为你挑选了1个好方法。

说我有:

void Render(void(*Call)())
{
    D3dDevice->BeginScene();
    Call();
    D3dDevice->EndScene();
    D3dDevice->Present(0,0,0,0);
}

只要我想用于渲染的函数是函数或static成员函数,这就没问题了:

Render(MainMenuRender);
Render(MainMenu::Render);

但是,我真的希望能够使用类方法,因为在大多数情况下,渲染函数将要访问成员变量,而Id则不会使类实例成为全局,例如

Render(MainMenu->Render);

但是我真的不知道如何做到这一点,仍然允许使用函数和static成员函数.



1> David Joyner..:

有很多方法可以为这只猫提供皮肤,包括模板.我最喜欢的是Boost.function,因为从长远来看,我发现它是最灵活的.另请阅读Boost.bind以了解绑定到成员函数以及许多其他技巧.

它看起来像这样:

#include 
#include 

void Render(boost::function0 Call)
{
    // as before...
}

Render(boost::bind(&MainMenu::Render, myMainMenuInstance));

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有