Panowie (i Panie) wkraczam w świat programowania obiektowo zorientowanego. Jest OK, zagadnienie już nie jest takie abstrakcyjne jak się wydawało na początku. W ramach nauki chciałem pójść o krok dalej i zacząć dynamicznie tworzyć obiekty. No, ale nie obyło się bez przeszkód. Próbuję stworzyć metodę która tworzyłaby nowy obiekt; bez problemu wychodzi mi to używając push_back()
w mainie. Zerknijcie proszę na kod i wytknijcie błąd. Nie pogardzę dobrą lekturą na uzupełnienie braków w teorii. Przy okazji możecie powiedzieć czy dobrze użyłem tutaj konstruktora domyślnego. Czy powinienem tyle instrukcji w niego wkładać?
#include <iostream>
#include <string>
#include <vector>
class Employee
{
private:
static std::vector<Employee> employees;
std::string name;
int age;
Employee::Employee(std::vector<Employee> employees)
{
employees = employees;
std::string localName;
int localAge;
std::cout << "So... do you want to hire a new employee? Let's look at CVs " << std::endl;
localName = "Marek"; //GenerateName();
localAge = 21; //these function is not ready yet. it'd be just a rand()
std::cout << "I've got one. What do u think about " << localName << " age " << localAge << "?" << std::endl;
int decision;
do
{
std::cout << "Do you want hire him [1] or not [2] ? " << std::endl;
std::cin >> decision;
switch (decision)
{
case 1:
name = localName;
age = localAge;
decision = 0;
break;
case 2:
//employees.erase(employees.end());
decision = 0;
break;
default:
std::cout << "Incorrect option. Try again" << std::endl;
}
} while (decision != 0);
}
public:
static void InstantiateVector()
{
std::vector<Employee> employees;
}
static void Employ() //std::vector<Employee> v
{
employees.push_back(Employee::Employee(employees));
}
static void Display()
{
}
};
int main()
{
std::vector<Employee> EmployeesCollection;
Employee::Employ();
system("pause");
}