Tablica obiektów klas bazowych
Ostatnio zmodyfikowano 2016-10-24 11:20
heptan Temat założony przez niniejszego użytkownika |
Tablica obiektów klas bazowych » 2016-10-24 10:51:54 witam to w skrócie: mam abstrakcyjną klasę bazową A i dziedziczące po niej klasy B C itp.. Mam też klasę ClassPanel w której tworzę vector na bazie klasy Aclass do zapisywania obiektów klas B C itp . [c++]class Panelclass { private: vector <unique_ptr<Aclass>> classList;
public: void addObject(int classNum,string name) { switch(classNum) { case 1:{classList.emplace_back(new Eclass(name));break;} case 2:{classList.emplace_back(new Fclass(name));break;} case 3:{classList.emplace_back(new Gclass(name));break;} case 4:{classList.emplace_back(new Jclass(name));break;} case 5:{classList.emplace_back(new Kclass(name));break;} case 6:{classList.emplace_back(new Iclass(name));break;} }
}[/c++]
w momencie kompilacji wyskakuje mi error Aclass is anbiguos base of Fclass" co jest źle w tym kodzie ? pozdrawiam |
|
michal11 |
» 2016-10-24 11:00:30 Pokaż co to jest Fclass. |
|
karambaHZP |
» 2016-10-24 11:14:37 Wygląda to tak: Klasa F dziedziczy po dwóch klasach, które dziedziczą po klasie A. Jeśli tak jest problem możesz rozwiązać przez dziedziczenie wirtualne. class A { };
class B : public A { }; class C : public A { };
class D : virtual public B , virtual public C { }; Takie dziedziczenie oznacza zwykle błąd projektowy. |
|
carlosmay |
» 2016-10-24 11:20:42 virtual nie w tym miejscu. class A { };
class B : virtual public A { }; class C : virtual public A { };
class D : public B , public C { }; |
|
« 1 » |