C++ advanced Task 3 - Orderedinserter
Здравейте! Имам 2 въпроса относно задача 3, единият от които е елементарен, а именно: как да подам вектор в конструктора на обекта от класа? Другият ми въпрос е относно грешки, които ми се появяват в main() файла на 3-та задача
Error 4 error C2065: 'companies' : undeclared identifier
Error 7 error C2065: 'companyPtr' : undeclared identifier
Error 8 error C2065: 'companyPtr' : undeclared identifier
Error 2 error C2143: syntax error : missing ';' before '}' - тук се подава вектор към новоконструирания обект
Error 3 error C2228: left of '.insert' must have class/struct/union
Error 9 error C2541: 'delete' : cannot delete objects that are not pointers
Error 1 error C2601: 'inserter' : local function definitions are illegal
Error 5 error C3312: no callable 'begin' function found for type ''unknown-type''
Error 6 error C3312: no callable 'end' function found for type ''unknown-type''
10 IntelliSense: expected a ';'
11 IntelliSense: initial value of reference to non-const must be an lvalue
-Това са всички error - и , които ми излизат при билдване на проекта за тази задача и всичките са свързани единствено с OrderMain.cpp
Ще съм благодарен ако можете да ме опътите по някакъв начин. Нов съм света на C++, но се опитвам максимално бързо да навържа нещата.
insert фунцкията, коят съм декларирал извън класа наистина съм изпуснал scope оператора след поредното написване на функцията. Благодаря за отговора, ще се опитам да коригирам до курса, ако не, ще те попитам на място. Иначе това е кодът на функцията : https://pastebin.com/rLcW4tci и когато не използвам companies с * ми изписва че companies трябва да е от Pointer тип, най вероятно това идва от декларацията ми на вектор в самия клас, но понеже нямам представа как да отразя извикването на конструктора на обект с вектор.
Поздрави,
Валентин
Здравей,
конструктора го викаш само веднъж, при създаването на обекта, което е тези два реда от main():
vector<const Company*> companies; OrderedInserter inserter{ companies };
Иначе, в класа който трябва да напишеш, задаваш поле - вектор const пойнтери към компаниите, но по референция. Посе конструктора е с инициализиращ списък, в който е същия този вектор, по същия начин записан.
Успех!