У меня много проблем с этим, в первую очередь из-за того, что мой переданный вектор моего класса помечается как необъявленный идентификатор. Любая помощь по решению проблемы или объяснений, чтобы помочь мне понять, что я не понимаю, будет очень признательна.Передача вектора, сделанного из класса, в функцию (C++)
Так вот упрощенная версия того, что я сейчас:
main.cpp
#include "functions.h"
#include "vehicle.h"
int main()
{
int menuSelection;
vector<Vehicle> inventory;
do
{
cout << "Please make a selection:" << endl << endl;
cout << "1: Display Inventory" << endl;
.......
cout << "8 : Write inventory to file and exit" << endl << endl;
if (menuSelection == 1)
{
if (inventory.empty())
cout << "Database empty" << endl;
else
display(inventory);
.......
} while (menuSelection != 8);
return 0;
}
vehicle.h
#pragma once
#include "functions.h"
class Vehicle
{
private:
string VIN;
int year;
.......
// public:
// string getVIN();
.......
}
functions.h
#pragma once
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void display(vector<Vehicle>);
.......
void display(vector<Vehicle>& in)
{
Vehicle v;
cout << "VIN: " << v.getVIN(in)
}
.......
Я пробовал кучу различения арендовать вещи, чтобы заставить его работать, поэтому многие вещи могут показаться странным синтаксисом (я тоже не очень хорош). Мое задание состоит в том, чтобы иметь меню в main.cpp, которое создаст вектор из класса, хранящегося в файле vehicle.h, а затем меню должно вызывать функции, которые находятся в функциях.h, которые будут связываться через vehicle.h с четвертый не включенный vehicle.cpp для работы с информацией из класса.
Ваша первая проблема - 'vector' не определена, потому что 'MyClass' не находится в коде. Но поскольку это еще не все, я действительно не могу сказать. Начать меньше. Создайте класс автомобиля самостоятельно. Протестируйте его и заработайте. Затем переходите к интеграции в меню и функции. Ваш первый основной объект создаст ваш объект автомобиля и докажет, что он работает. Затем добавьте свои функции. Наконец, добавьте векторную функциональность. –
Matt
MyClass был опечаткой, это должен быть автомобиль. Я могу получить класс Vehicle для компиляции просто отлично. Однако, как только я добавлю main.cpp всех членов (VIN, year) в возврате класса с «неизвестным спецификатором переопределения». Я не знаю, как продолжить, я предполагаю, что это ошибка в том, как я сделал свой вектор. –
компиляция просто отлично и работает просто отлично, это разные вещи. Он компилируется, но не работает. Забудьте вектор. Получить класс, работающий для одного экземпляра, и перейти оттуда. Вектор - это всего лишь контейнер вещей. – Matt