1. Принцип на работа на компютъра
    • архитектура на фон Нойман
    • машинни инструкции
    • организация на паметта
  2. Механизъм на извикване на функции на ниско ниво
    • стекова рамка
    • локалните променливи се записват върху стека
    • указатели като параметри - прескачат стековата рамка
  3. Синтактични конструкции за указатели
    • разлика между константи и променливи
    • указатели към константи
      • const T* <--> T const*
      • указателите могат да се сменят, но не и клетката към която сочат
      • пример: char* strcpy(char*, const char*)
    • константни указатели
      • T* const
      • клетката към която сочи указателя може да се променя, но не и самия указател
      • пример: името на всеки масив е константен указател към първия му елемент)
    • константи указатели към константи
      • const T* const <--> T const* const
      • нито указателят, нито клетката може да се променя
  4. Псевдоними
    • T&
    • псевдонимите олекотяват синтаксиса
    • използват се за предаване на параметри, които да служат и за изход (вместо параметри - указатели)
    • приличат на константни указатели, но има разлики (кои са те?)
    • константни псевдоними - (T const & <--> const T&)
  5. Указатели към функции
    • функциите са записани в паметта => имат адрес
    • името на всяка функция в C++ е указател към първата й инструкция
    • прототип (сигнатура) на функция - тип на връщане и типове на параметрите, няма нужда от имена
    • указател към функция - като сигнатура, но пред името се поставя *:
      • int (*pf) (int, double)
    • могат да сочат само към функции с абсолютно същия прототип (сигнатура)
    • изпълняване на функция през указател - както бихме изпълнили обикновената функция
      • cout << pf(3,5.7);
  6. Функции от по-висок ред
    • функциите, които приемат като параметри указатели към функции се наричат функции от по-висок ред
    • функциите от по-висок ред се използват за реализация на алгоритмични схеми
      • примери: обхождане на масив (map), сума (sum), произведение (product), натрупване (accummulate), избирателно натрупване (filter_accummulate)


Последно модифициране: събота, 12 ноември 2011, 17:38