首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++虚函数

C++虚函数
EN

Stack Overflow用户
提问于 2013-07-30 04:52:26
回答 2查看 187关注 0票数 1
代码语言:javascript
复制
//*****************************************************************************
// d3dApp.h by Frank Luna (C) 2011 All Rights Reserved.
//
// Simple Direct3D demo application class.  
// Make sure you link: d3d11.lib d3dx11d.lib D3DCompiler.lib D3DX11EffectsD.lib 
//                     dxerr.lib dxgi.lib dxguid.lib.
// Link d3dx11.lib and D3DX11Effects.lib for release mode builds instead
//   of d3dx11d.lib and D3DX11EffectsD.lib.
//*****************************************************************************

#ifndef D3DAPP_H
#define D3DAPP_H

#include "d3dUtil.h"
#include "GameTimer.h"
#include <string>

class D3DApp
{
    public:
    D3DApp(HINSTANCE hInstance);
    virtual ~D3DApp();

    HINSTANCE AppInst()const;
    HWND      MainWnd()const;
    float     AspectRatio()const;

    int Run();

    // Framework methods.  Derived client class overrides these methods to 
    // implement specific application requirements.

    virtual bool Init();
    virtual void OnResize(); 
    virtual void UpdateScene(float dt)=0;
    virtual void DrawScene()=0; 
    virtual LRESULT MsgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

    // Convenience overrides for handling mouse input.
    virtual void OnMouseDown(WPARAM btnState, int x, int y){ }
    virtual void OnMouseUp(WPARAM btnState, int x, int y)  { }
    virtual void OnMouseMove(WPARAM btnState, int x, int y){ }

有人能解释一下为什么UpdateSceneDrawScene设置为0吗?这个语法是什么意思?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 05:02:49

这种语法意味着“纯虚拟函数”。通过将一个或多个函数声明为纯虚拟函数,可以使类抽象(不能实例化)。您打算在您的子实现中实现这些“纯虚拟”功能。但是,您可以在抽象类中拥有一个纯虚拟函数的主体,以防您想要从一个派生对象调用父版本。

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 04:56:39

这些方法将由使用D3DApp作为基础的派生类来实现。如果它们未实现,则在派生类的实例过程中生成编译时错误。将这些方法的实现强制化基本上是一种设计选择。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17938565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档