从头文件调用函数作为 const 变量的初始值设定项

问题描述 投票:0回答:0

在我的 C++ 代码中,我最近将一个名为“bufferSignature”的变量从 unsigned int 更新为 const string,以便更具描述性。我需要在创建 VBufferObject 时使用“SceneManager”命名空间中名为“GenerateAlphanumSignature”的函数的返回值初始化此变量。我在这里遇到的问题是我希望变量 (bufferSignature) 是常量,因为我不会在它的生命周期内更新它。但是我不能在构造函数中初始化它。我试过调用标头中的函数来初始化变量。我以前从来没有这样做过,所以我没想到它会起作用。它没有。我只是在寻找任何解决方法。

VBufferObject.h

#pragma once
#include "Dependencies.h"
#include "Helpers.h"

#include "SceneManager.h"

namespace Vega
{
    class VBufferObject
    {
    public:
        const std::string bufferSignature = SceneManager::GenerateAlphanumSignature();

        void ComputeIndexArray();

        std::vector<unsigned int> IBD;
        std::vector<glm::vec3> VBD;
        std::vector<glm::vec2> UVBD;
        std::vector<glm::vec3> NBD;
    };
}

代码完全开源:这里(分支:预览)如果你需要自己看代码。

c++ initialization header-files
© www.soinside.com 2019 - 2024. All rights reserved.