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.
работа