需要帮助:" IntelliSense:不允许使用数据成员初始化程序"

时间:2016-01-14 16:43:58

标签: c++ intellisense directx-11

首先发布在这里,如果出了问题就很抱歉。 我一直在关注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;
}

1 个答案:

答案 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
}

我更喜欢后者。