Вектор объектов не заполняетсяC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вектор объектов не заполняется

Сообщение Anonymous »


Я создал несколько классов, каждый из которых содержит вектор объектов. По сути, когда я пытаюсь добавить vector к объекту StorageConnection, он показывает, что в объекте StorageConnection нет никаких значений контроллера. Я распечатал элементы vector перед добавлением их в объект StorageConnection, поэтому я знаю, что vector заполнен. По какой-то причине, когда я пытаюсь скопировать содержимое из controllerListTemp в storageConnectionTemp.getFileSystem(0), storageConnectionTemp.getFileSystem(0).getControllerSize() всегда возвращает размер 0.

ПРИМЕЧАНИЕ. К сожалению, в текущем проекте я использую C++98, поэтому могу ограничиться новыми функциями C++

Хост класса { публика: Хост () : имя_хоста_("") { } Хост (const Host& хост): имя_хоста_(host.hostName_) { } Оператор хоста = (const Host& хост) {hostName__ = host.hostName_; вернуть *это; } // деструктор // сеттеры и геттеры для имени хоста_ частный: строка имя_хоста_; }; Контроллер класса { публика: Контроллер() : ControllerName_(""), hostList_() { } Контроллер (const Controller& контроллер): ControllerName_(controller.controllerName_), hostList_(controller.hostList_) { } Оператор контроллера = (const Controller& контроллер) { имя_контроллера_ = имя_контроллера.имя_контроллера_; hostList_ = контроллер.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_() { } FileSystem (const FileSystem& FileSystem): fileSystemName_(FileSystem.fileSystemName_), controlList_(FileSystem.controllerList_) { } Оператор файловой системы = (const FileSystem& FileSystem) { fileSystemName_ = FileSystem .fileSystemName_; ControllerList_= ФайловаяСистема .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_() { } StorageConnection (const StorageConnection& StorageConnection): siteName_(storageConnection.siteName_), FileSystemList_(storageConnection.FileSystemList_) { } Оператор StorageConnection=( const StorageConnection& StorageConnection ) { siteName_= StorageConnection.siteName_; fileSystemList_= StorageConnection.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»