首先发布在这里,如果出了问题就很抱歉。 我一直在关注C ++和C ++的教程。 directx11和我提出了一个在教程中没有复制的错误。示例代码位于我创建的标题中。 在"私人:"所有3行代码都给出了错误" IntelliSense:不允许使用数据成员初始化程序"。
#pragma once
#include "Window.h"
#include <d3d11.h>
class Renderer
{
public:
Renderer(Window& window);
private:
//Errors here
IDXGISwapChain* m_SwapChain = nullptr;
ID3D11Device* m_device = nullptr;
ID3D11DeviceContext* m_deviceContext = nullptr;
}
答案 0 :(得分:1)
您无法在类定义中初始化数据成员。正确的方法是在CPP文件中:
IDXGISwapChain* Renderer::m_SwapChain = nullptr;
ID3D11Device* Renderer::m_device = nullptr;
ID3D11DeviceContext* Renderer::m_deviceContext = nullptr;
您也可以在构造函数中执行此操作,如下所示:
Renderer::Renderer(Window& window) :
m_SwapChain(nullptr),
m_device(nullptr),
m_deviceContext(nullptr)
{
// Initialization code here
}
我更喜欢后者。