2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2016-12-08 // C++のクラスのポインタの相互参照 [長年日記]

// C++のクラスのポインタの相互参照
 
/*
  gcc -g pointer.cpp -o pointer
*/
 
#include 
 
class A;    // Aを定義しなくてもいいから、宣言だけしておく。
 
class B{
public:
  A* p_A;
  int int_b;
};
 
class A{     // Aをここで詳しく記載する
public:
  B* p_B;
  int int_a;
};
 
int main()
{
  A a;
  B b;
  
  a.int_a = 3;
  b.int_b = 4;
 
  a.p_B = &b;
  b.p_A = &a;
 
  printf("%d", a.p_B->int_b); // 4が出力される
  printf("%d", b.p_A->int_a); // 3が出力される
 
   
  return 0;
 
}