Мне нужна гибкость, чтобы иметь возможность изменять параметры, передаваемые различным функциям, в зависимости от того, где произошел вызов функции, поэтому я решил поместить все свои параметры в структуру, однако большинство этих параметров являются структурами или сами классы, и я хочу иметь возможность оставить их NULL, поэтому я должен передавать указатели на структуры / классы.
struct A
{
otherB* b; // NULL should be a valid value
otherC* c;
};
Однако мой вопрос сейчас заключается в том, что передача A вокруг этих указателей будет единственной копией, поэтому, если я сделаю следующее, возникнет проблема, верно?
void func(A& a) //non const cause I wanna change contents of A.
{
a.b = new b();
}
A myA;
otherC somec; // all these are currently automatic variables in my pgm.
myA.c = &somec;
func(myA); //myA goes out of scope? so I've lost all pointers assigned and since somec is out of scope too, I have a problem?
Как лучше всего разрешить что-то подобное? + Мне нужна гибкость, позволяющая передавать NULL любому из моих параметров, но не уверен, что использование сырых указателей везде - хорошая идея?