This question already has answers here:
Why is a pure virtual function initialized by 0?
(11个答案)
7年前关闭。
有人可以向我解释为什么
(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){ }
有人可以向我解释为什么
UpdateScene
和DrawScene
设置为0吗?该语法是什么意思? 最佳答案
此语法的意思是“纯虚函数”。通过将一个或多个函数声明为纯虚函数,可以使您的类抽象(无法实例化)。您打算在 child 的实现中实现这些“纯虚拟”功能。但是,您可以在抽象类中为纯虚函数提供主体,以防万一您想从派生对象之一调用父版本的情况。
关于c++ - C++虚函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17938565/