|  23.09.2015 / 17:16 |  | 
| Freddy    Пользователь 
  Сейчас: Offline 
 Имя: ИгорьОткуда: Воронеж
 Регистрация: 30.01.2010
 
 | Цитата Naik:Неужели компилятор не может посмотреть использования кода и сам все сгенерировать?
 Если я не ощибаюсь (в C точно так, в C++ на все 100% не уверен), компилятор однопроходный - разбирает исходный код сверху вниз один раз и не возвращается к нему. Поэтому просканировать весь проект он не в состоянии, да и чересчур долго бы это было на больших проектах.Нет же, ему нужен факт, что реализации именно в хидере  Не ему, а линковщику, и "в одном объектном файле", точнее   | 
|  23.09.2015 / 17:59 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | Freddy, ну ладно, вроде разобрался с этим, спасибо за разьяснение
 | 
|  23.09.2015 / 18:10 |  | 
| Ксакеп    Модератор форума 
  Сейчас: Offline 
 Регистрация: 20.06.2012
 | Спустя время решил, что легче все определения класса держать в header'ах, а-ля java.
 | 
|  27.09.2015 / 17:18 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | Прикольно, через родительский класс, в котором виртуальный метод публичный можно вызывать приватный метод в дочернем    В java только protected можно | 
|  27.09.2015 / 18:13 |  | 
| Ксакеп    Модератор форума 
  Сейчас: Offline 
 Регистрация: 20.06.2012
 | Naik, а ну, покажи.
 | 
|  27.09.2015 / 20:37 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | Изменено Naik (27.09 / 20:38) (всего 1 раз)
 | 
|  27.09.2015 / 21:41 |  | 
| aNNiMON   Супервизор 
  Сейчас: Offline 
 Имя: ВитёкРегистрация: 11.01.2010
 
 | __________________Naik, вот в чём магия. protected:    virtual T* get(int i) = 0;
В Java же нельзя понижать область видимости родительского метода в дочернем классе.   И сдаётся мне, что в LinkedList твой private игнорируется и становится protected, как в List.
   let liveИзменено aNNiMON (27.09 / 21:42) (всего 2 раза)
 | 
|  27.09.2015 / 21:48 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | aNNiMON,  в java можно тоже так, но только понижать до protected, а не private, что более логично, т.к. предку в любом случае нужны абстрактные методы детей.
 Изменено Naik (27.09 / 21:50) (всего 1 раз)
 | 
|  27.09.2015 / 22:46 |  | 
| Naik    Пользователь 
  Сейчас: Offline 
 Имя: %name%Регистрация: 14.03.2010
 
 | C++ создан чтобы усложнять жизнь   new LinkedList<char>(*linkedlist)); так не работает, т.к. конструктор принимает абстрактный тип List А вот с таким явным приведением работает) new LinkedList<char>(*((List<char>*)linkedlist)); |