#c #oop #design-patterns
#c #ооп #шаблоны проектирования
Вопрос:
У меня есть два класса Device
и DeviceMemory
, Device
имеет поле memory
типа DeviceMemory
, так что при Device
уничтожении DeviceMemory
оно освобождается.
class DeviceMemory {
void func();
}
class Device {
VkPhysicalDevice phys_dev;
VkDevice logi_dev;
DeviceMemory memory;
}
Как я могу func
получить доступ к phys_dev
и logi_dev
с устройства-владельца?
Комментарии:
1. Если они так тесно связаны, должны ли они действительно быть отдельными объектами?
2. DeviceMemory должна иметь ссылку на устройство (например, переданную в конструкторе DeviceMemory), или phys_dev / logi_dev должны быть переданы в качестве параметров в func
3. Это звучит как плохой дизайн. Что это
func
на самом деле, и почему память должна знать, какому устройству она принадлежит?4. @Matt потому что наличие каждой отдельной функции внутри
DeviceMemory
haveVkPhysicalDevice phys_dev
в качестве аргумента кажется утомительным5. @MacelaruTiberiu Ваш вопрос слишком расплывчатый, чтобы принять краткое решение.