我正在编写基于 Vulkan 的渲染器,但不幸的是出现了这个错误: 'Azazel::Instance::~Instance':无法访问在类'Azazel::Instance'中声明的私有成员 这让我很头疼。我试图在我的命名空间开始时预先声明 Azazel_Menager 类,但它不起作用,所以我改变了:
friend class Azazel_Menager;
至:
friend class Azazel::Azazel_Menager;
好吧,它也没有成功。所以在这里我请求你的帮助。也许你会看到我没有看到的东西。
Azazel_Menager:
#pragma once
#include "Engine/Core/UsingTypes.h"
namespace Azazel
{
class Instance;
class PhysicalDevice;
class Azazel_Menager
{
public:
static void CreateInstance();
static void RetrieveAndSetPhysicalDevice();
private:
static Ref<Instance> s_Instance;
static Ref<PhysicalDevice> s_PhysicalDevice;
};
}
实例.h:
#pragma once
#include <vector>
#include <VulkanSDK/include/vulkan/vulkan.hpp>
namespace Azazel
{
class Azazel_Menager;
class Instance
{
friend class Azazel::Azazel_Menager;
private:
Instance();
~Instance();
public:
vk::UniqueInstance m_Instance;
VkDebugUtilsMessengerEXT m_callback;
};
}
参考 = std::shared_ptr