C++ Advanced, 09_02_IDs - записване на един тип обект в друг тип
Здравейте,
какви са начините да се запише един тип обект в друг тип, пробвах няколко варианта, но не работи нито един и се чудя защо:
1/ без онаследяване, независим обект HasId само с едно поле int id, слайсвaм Company към него: защото ми трябва само първото поле:
   HasId* operator=(Company* c) {
        return (HasId*)c;    
2/     //VER.2
        //this->id = c->getId();
        //return this;    
    }
   Или 3/   HasId поле:    int id;
                  Ctor:              HasId(Company * c) : id(c->getId()) {}    И с един гетер за полето.
4/ако пробвам HasId да е базов и да се онаследява от Company, в конструктора й няма инициализация на базов клас, следователно тя няма базов клас, няма как да стане по този начин; Същото важи и за .HasInfo;
5/ ако HasInfo наследява Company, и HasId наследява Company, се инициализират от main() е чрез = c, което е copy-elision тук и би трябвало да е така ctor-a:
class HasId : public Company { public: int id;
    HasId() : Company() {}
    HasId(Company* c) : Company(c->id, c->name, c->employees), id(id) {}
Явно нещо бъркам?
Поздрави!