Добавил виртуальность конструкторам

This commit is contained in:
parent 7f317fce22
commit 267a1226ed
3 changed files with 5 additions and 4 deletions

View File

@ -6,6 +6,7 @@
class I_Model class I_Model
{ {
public: public:
virtual ~I_Model() {}; // Виртуальный деструктор для корректной работы деструкторов в полиморфизме
virtual void render(VkCommandBuffer commandBuffer) = 0; virtual void render(VkCommandBuffer commandBuffer) = 0;
protected: protected:
virtual void bindBuffers(VkCommandBuffer commandBuffer) = 0; virtual void bindBuffers(VkCommandBuffer commandBuffer) = 0;

View File

@ -9,7 +9,7 @@ class Model_wo_indexes : public I_Model
{ {
public: public:
Model_wo_indexes(Vertex* vertexArray, uint32_t verteciesCount); Model_wo_indexes(Vertex* vertexArray, uint32_t verteciesCount);
~Model_wo_indexes(); virtual ~Model_wo_indexes();
virtual void render(VkCommandBuffer commandBuffer); virtual void render(VkCommandBuffer commandBuffer);
protected: protected:
void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных
@ -23,7 +23,7 @@ class Model_w_indexes : public Model_wo_indexes
{ {
public: public:
Model_w_indexes(Vertex* vertexArray, uint32_t verteciesCount, uint32_t* indexArray, uint32_t indeciesCount); Model_w_indexes(Vertex* vertexArray, uint32_t verteciesCount, uint32_t* indexArray, uint32_t indeciesCount);
~Model_w_indexes(); virtual ~Model_w_indexes();
virtual void render(VkCommandBuffer commandBuffer); virtual void render(VkCommandBuffer commandBuffer);
protected: protected:
void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных void bindBuffers(VkCommandBuffer commandBuffer); // привязка используемых буферов данных

View File

@ -2,6 +2,8 @@
#include "vk.h" #include "vk.h"
#include <iostream>
// Конструктор класса без индексов - принимает массив вершин // Конструктор класса без индексов - принимает массив вершин
Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : verteciesCount(count) Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : verteciesCount(count)
{ {
@ -14,7 +16,6 @@ Model_wo_indexes::Model_wo_indexes(Vertex* vertexArray, uint32_t count) : vertec
Model_wo_indexes::~Model_wo_indexes() Model_wo_indexes::~Model_wo_indexes()
{ {
extern Vulkan vulkan; extern Vulkan vulkan;
vulkan.destroyBuffer(vertexBuffer); vulkan.destroyBuffer(vertexBuffer);
} }
@ -47,7 +48,6 @@ Model_w_indexes::Model_w_indexes(Vertex* vertexArray, uint32_t vCount, uint32_t*
Model_w_indexes::~Model_w_indexes() Model_w_indexes::~Model_w_indexes()
{ {
extern Vulkan vulkan; extern Vulkan vulkan;
vulkan.destroyBuffer(indexBuffer); vulkan.destroyBuffer(indexBuffer);
} }