Вектор объектов не заполняется ⇐ C++
-
Anonymous
Вектор объектов не заполняется
Я создал несколько классов, каждый из которых содержит вектор объектов. По сути, когда я пытаюсь добавить vector к объекту StorageConnection, он показывает, что в объекте StorageConnection нет никаких значений контроллера. Я распечатал элементы vector перед добавлением их в объект StorageConnection, поэтому я знаю, что vector заполнен. По какой-то причине, когда я пытаюсь скопировать содержимое из controllerListTemp в storageConnectionTemp.getFileSystem(0), storageConnectionTemp.getFileSystem(0).getControllerSize() всегда возвращает размер 0.
ПРИМЕЧАНИЕ. К сожалению, в текущем проекте я использую C++98, поэтому могу ограничиться новыми функциями C++
Хост класса { публика: Хост () : имя_хоста_("") { } // сеттеры и геттеры для имени хоста_ частный: строка имя_хоста_; }; Контроллер класса { публика: Контроллер() : ControllerName_(""), hostList_() { } int getHostListSize() {...} Хост getHost(int index) { return hostList_.at(index); } Хост getHost(строка имя_хоста) {...} вектор getHostList() { return hostList_;} void addToHostList (хост-хост) {hostList_.push_back (хост); } voidclearHostList() {hostList_.clear(); } // сеттеры и геттеры для контроллераName_ частный: строка ControllerName_; вектор hostList_; }; класс ФайловаяСистема { публика: FileSystem() : fileSystemName_(""), ControllerList_() { } int getControllerListSize() {...} Хост getController(int index) { return ControllerList_.at(index); } Хост getController(string ControllerName) {...} вектор getControllerList() { return ControllerList_;} void addToControllerList (контроллер контроллера) {controllerList_.push_back (контроллер); } voidcleControllerList() {controllerList_.clear(); } // сеттеры и геттеры для fileSystemName_ частный: строка fileSystemName_; вектор ControllerList_; }; класс StorageConnection { публика: StorageConnection() : siteName_(""), FileSystemList_() { } int getFileSystemListSize() {...} Хост getFileSystem (int index) { return fileSystemList_.at(index); } Хост getFileSystem (string fileSystemName) {...} вектор getFileSystem List() { return fileSystemList_;} void addToFileSystemList (FileSystem fileSystem) { fileSystemList_.push_back (fileSystem); } voidclearFileSystemList() {fileSystemList_.clear(); } // сеттеры и геттеры для siteName_ частный: строка siteName_; вектор fileSystemList_; }; Предположим, что метод populateStorageConnection() имеет доступ ко всем классам, указанным выше.
void populateStorageConnection() { вектор контроллерListTemp; StorageConnection StorageConnectionTemp; // вектор ControllerListTemp и элемент fileSystemList уже заполнены в StorageConnectionTemp // добавляем список контроллеров в объект StorageConnectionTemp for ( int ControllerCounter = 0; i
Я создал несколько классов, каждый из которых содержит вектор объектов. По сути, когда я пытаюсь добавить vector к объекту StorageConnection, он показывает, что в объекте StorageConnection нет никаких значений контроллера. Я распечатал элементы vector перед добавлением их в объект StorageConnection, поэтому я знаю, что vector заполнен. По какой-то причине, когда я пытаюсь скопировать содержимое из controllerListTemp в storageConnectionTemp.getFileSystem(0), storageConnectionTemp.getFileSystem(0).getControllerSize() всегда возвращает размер 0.
ПРИМЕЧАНИЕ. К сожалению, в текущем проекте я использую C++98, поэтому могу ограничиться новыми функциями C++
Хост класса { публика: Хост () : имя_хоста_("") { } // сеттеры и геттеры для имени хоста_ частный: строка имя_хоста_; }; Контроллер класса { публика: Контроллер() : ControllerName_(""), hostList_() { } int getHostListSize() {...} Хост getHost(int index) { return hostList_.at(index); } Хост getHost(строка имя_хоста) {...} вектор getHostList() { return hostList_;} void addToHostList (хост-хост) {hostList_.push_back (хост); } voidclearHostList() {hostList_.clear(); } // сеттеры и геттеры для контроллераName_ частный: строка ControllerName_; вектор hostList_; }; класс ФайловаяСистема { публика: FileSystem() : fileSystemName_(""), ControllerList_() { } int getControllerListSize() {...} Хост getController(int index) { return ControllerList_.at(index); } Хост getController(string ControllerName) {...} вектор getControllerList() { return ControllerList_;} void addToControllerList (контроллер контроллера) {controllerList_.push_back (контроллер); } voidcleControllerList() {controllerList_.clear(); } // сеттеры и геттеры для fileSystemName_ частный: строка fileSystemName_; вектор ControllerList_; }; класс StorageConnection { публика: StorageConnection() : siteName_(""), FileSystemList_() { } int getFileSystemListSize() {...} Хост getFileSystem (int index) { return fileSystemList_.at(index); } Хост getFileSystem (string fileSystemName) {...} вектор getFileSystem List() { return fileSystemList_;} void addToFileSystemList (FileSystem fileSystem) { fileSystemList_.push_back (fileSystem); } voidclearFileSystemList() {fileSystemList_.clear(); } // сеттеры и геттеры для siteName_ частный: строка siteName_; вектор fileSystemList_; }; Предположим, что метод populateStorageConnection() имеет доступ ко всем классам, указанным выше.
void populateStorageConnection() { вектор контроллерListTemp; StorageConnection StorageConnectionTemp; // вектор ControllerListTemp и элемент fileSystemList уже заполнены в StorageConnectionTemp // добавляем список контроллеров в объект StorageConnectionTemp for ( int ControllerCounter = 0; i
Мобильная версия