Професионална програма
Loading...
+ Нов въпрос
slavib avatar slavib 0 Точки

Защо вектора дефиниран в конструктура не приема стойностите от insert функцията ?

Не мога да разбера защо companies вектора не приема стойностите които му се подават от insert.



#include "Company.h"
class OrderedInserter {

public:
     std::vector<const Company*> comies;

public:
    OrderedInserter(const std::vector<const Company *>& companies)
                                        : comies(companies) {}

    void insert(const Company* c) {
        comies.push_back(c);

       // std::sort(companies.begin(), companies.end());
    }
};
Тагове:
0
C++ Advanced
j.petrov_90 avatar j.petrov_90 163 Точки

Привет, колега,

Векторът, който е вътре в класа ти приема стойностите на insert функцията и си работи отлично.

Не знам дали забеляза, обаче, в задачата в main.cpp файла се печатат стойностите на вектора, който се намира в main функцията, а не този вътре в класа.

Но ние работим с класа, а искаме да печатаме нещо друго, което е отвън...
Имаме 2 обекта от тип std::vector<>, но искаме те да работят върху една и съща памет. Как става това? :)

Поздрави

0
01/12/2019 10:24:10
kolioi avatar kolioi 615 Точки

Не знам какво е условието на задачата и какво искаш да направиш, но за да ти тръгне кода, comies трябва да го направиш референция към вектор

std::vector<const Company*>& comies;

и в конструктора не трябва да подаваш const

OrderedInserter(std::vector<const Company *>& companies)
	: comies(companies) {}

при което целия клас малко се обезмисля, ама не знам каква ти е идеята :)

0