oxa

Рабочее

Feb 01, 2012 14:12

Собственно, с октября месяца я сижу по уши в работе. Какие-то события, конечно, происходят на фоне (куда-то ездили, что-то делаем), но в общем и целом жизнь поставлена на этакую паузу (что очень удобно, когда за окном минус 20).

Я пока обложилась профессиональной и не очень литературой и получаю удовольствие от загрузки новых знаний в черепушку.

А сегодня Серега подкинул интересную и до боли простую задачку, благодаря которой я узнала, что параметры функции по умолчанию могут быть не только константами, enum'ами и указателями на функции, а еще и обыкновенными статическими переменными. Значения этих переменных вычисляются на момент вызова функции без соответствующего параметра.

То есть:

В хедере:

class TClass
{
  static int staticB;
  int func(const int a = staticB)
  {
    return a;
  }
};

В модуле *.cpp:

int TClass::staticB(0);

Дальше в имплементации класса:

staticB = 3;
int res = func();

staticB = 4;
res = func();

После первого вызова res будет равен 3, а после второго - 4.

работа

Previous post Next post
Up