c++ - C++虚函数

扫码查看

This question already has answers here:
Why is a pure virtual function initialized by 0?

(11个答案)


7年前关闭。



//*****************************************************************************
// 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吗?该语法是什么意思?

最佳答案

此语法的意思是“纯虚函数”。通过将一个或多个函数声明为纯虚函数,可以使您的类抽象(无法实例化)。您打算在 child 的实现中实现这些“纯虚拟”功能。但是,您可以在抽象类中为纯虚函数提供主体,以防万一您想从派生对象之一调用父版本的情况。

关于c++ - C++虚函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17938565/

10-11 22:40
查看更多