книге написано, неявного восходящего преобразования не существует для приватного наследования. Но при написании кода
                  
                  
                  class Base
                  
                  
                  {
                  
                  
                  };
                  
                  
                  
                  
                  
                  class Derived : private Base
                  
                  
                  {
                  
                  
                  public:
                  
                  
                      Derived() : Base() {}
                  
                  
                      void temp() { Base& b = *this; }
                  
                  
                  };
                  
                  
                  вот это обьявление Base& b = *this; нормально работает. Я что то неправильно понял?
                  
                  
                
Вообще, почему это не должно работать? Ты находишься в классе, можешь трогать прайват, протектед и паблик поля. Я бы посоветовал тебе посмотреть лекцию о наследовании Константина Владимирова балакаврского курса.
Заметь, что вне(за исключением друзей) класса такая (Base& b = d) запись не будет возможной
 Sasha
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Sasha
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Да, это я понял
 Sasha
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Sasha
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Та вот я тоже не понимаю, но полагаю, что автор имел ввиду про недоступность в унаследованных классах от Derived уже
Вот вам эвристика для разгона интуиции. private наследование очень похоже на создание private поля в теле класса. С private родителем можно делать примерно тоже самое, что и с private полем.
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
private private private
.. Но при этом не надо при вызове методов писать имя поля
Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Обсуждают сегодня