У меня есть настройки дочернего, родительского и дедушкин классов.У одного деда есть несколько родителей, хранящихся в векторе, и у каждого родителя есть несколько детей, также хранящихся в векторе.Каждый объект владеет ссылкой на своего владельца.
В MAIN я устанавливаю ID-переменную прародителя и родителя в 1 соответственно, но когда я получаю доступ к идентификатору родительского потомка, он становится пустым.Однако, когда я обращаюсь к бабушке и дедушке родителей, это равен 1, как и ожидалось.
Почему идентификатор родителей ребенка не равен 1?
#ifndef HEADERH_H
#define HEADER_H
#include <vector>
class CHILD;
class PARENT;
class GRANDPARENT;
class CHILD{
public:
int id;
const PARENT &parent;
CHILD(PARENT &parent):parent(parent){};};
class PARENT{
public:
int id;
const GRANDPARENT &grandparent;
std::vector<CHILD> children;
PARENT(GRANDPARENT &grandparent):grandparent(grandparent){};};
class GRANDPARENT
{
public:
int id;
std::vector<PARENT> parents;
GRANDPARENT(){};
};
#endif
Исходный файл
#include "Headerh.h"
#include <iostream>
int main(){
GRANDPARENT grandparent;
for(int i=0; i<=5; i++){
PARENT parent(grandparent);
for(int i=0; i<=5; i++){
CHILD child(parent);
parent.children.push_back(child);
}
grandparent.parents.push_back(parent);
}
grandparent.id = 1;
grandparent.parents[1].id = 1;
int test(grandparent.parents[1].children[1].parent.id);
int test0(grandparent.parents[1].children[1].parent.grandparent.id);
std::cout<<test<<" "<< test0<<std::endl;
return 0;
};