Именно, даже существуют методики, которые гарантируют что обьект А будет создан раньше обьекта Б. А вообще, если у вас сильная зависимость между классами, то возможно, следует пересмотреть иерархию классов.
Чтоб не быть голословным, вот пример:
Код
class SomeFoo {
public:
int func1() { ... };
};
/* функция возвращает ссылку на обьект типа SomeFoo */
SomeFoo& some_func()
{
/* статически создаем обьект типа SomeFoo */
static SomeFoo myClass;
/* возвращаем ссылку на статический обьект */
return myClass;
}
class SomeOtherClass {
public:
my_other_func() {
int some_value = some_func().func1();
};
};
надеюсь из кода все понятно. Общий смысл в том, что в функции создается статический объект, ссылка на который, потом возвращается туда куда нам надо. Мне такой трюк нужен был только однажды, да и то, потом как-то обошлось, поменял немного архитектуру.