nataraj: (Default)
[personal profile] nataraj

Есть два класса (надеюсь что я ничего не навру... проверять компилятором -- лень, а наизусть могу перепутать Но надеюсь общую идею передам)
class Parent1
{
   class Child1
  {
     protected:
     int property;

     friend class Parent1;
  };
  Child1 * child;
}
В методах класса Parent1 мы можем обращаться к свойству property child'а-- вполне законно...

Далее натворим наследников
class Parent1_1 : public Parent1
{
   class Child1_1 : public Child1
  {
  };
  Child1_1 * child;
}
В результате внутри child их Parent1_1 есть свойство property. Но из методов класса Property1_1 оно не доступно, не смотря на то, что Parent 1_1 наследник Parent1

Если конечно в Parent1::Child1 явно прописать friend class Parent1_1 то конечно нам все дадут, но вот только проблема в том что Parent1_* будет дофига и для всякого нового добавлять упоминание в базовом классе не хотелось бы.

Можно ли каким нибудь способом унаследовать дружественность?

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 10th, 2026 11:04 pm
Powered by Dreamwidth Studios