#3 gomess
Jelikoz je public, tak k ni musis mit pristup kdykoliv, kdy mas instanci tridy A.
Nicmene - proc pouzivas ve tride A pointer na tridu B? Tj.: B* b;
V tomto pripade pak musis dodrzet takzvane Rule of three (starsi c++ standardy) nebo Rule of five (standard c++11 a dale). Tj. musis mit vlastni copy constructor, copy assignent operator a hlavne destruktor. U pravidla peti se jeste pridava move constructor a move assigment operator. Proste abys zarucil, ze se ti neztraci pamet a tak.
Ostatne tady neni moc opodstatnene vubec pouzivat tridu B kvuli jednomu retezci. Ale dejme tomu ze v realnem kodu je to o necem jinem.
Pak napriklad jestli iterujes v listu takto:
while(iter = _Parsed.begin()) // iterate over list
{
iter->GenerateBody();
}
nebo pridavas do listu _Parsed novou polozku takto:
a.push_Back(_Parsed);
tak to nemusi fungovat i kvuli necemu jinemu nez myslis.