И, наконец, вопросы третьего уровня.

Что вернет функция int f( int i , int j , int k ){return(k);}, если её вызвать так:

	int i( 1 );
	std::cout<<f( ++i , ++i , ++i )<<std::cout;

Что такое undefined behaviour? Приведите примеры, когда программа начинает себя так вести.

В данном случае как раз undefined behaviour и поэтому сказать, что именно вернет функция, нельзя. Связано это с тем что порядок вычисления параметров функции неопределен стандартом. Ну а что касается примера – файл с C++ кодом должен заканчиваться символом переноса строки, иначе это ub ))

Что неправильно в данном коде:

	template< int n >class t{};
	// ...
	for( int i( 0 ) ; i < 10 ; i++ )
	{
		t< i >   ob;
	}

Параметры инстанциации шаблона должны быть известны компилятору на этапе компиляции. А в данном случае получается, что они неизвестны. Поэтому и возникнет ошибка в строчке t.

Сколько байт в памяти займет приведенный ниже класс?

	class CSomeClass{
	public:
		int			*ptr;
		virtual void		f( void ){}
	};

Во-первых, у нас есть виртуальная функция, поэтому в объекте всегда будет присутствовать указатель таблицу виртуальных функций, и занимать, как правило, 4 байта. Во-вторых, есть указатель на целое число. Он, в зависимости от платформы, может занимать 2, 4 или 8 байт 4 (то же самое относится и к указателю на таблицу виртуальных методов).

Что будет выведено на экран?

	void		f( int i )
	{
		std::cout<<i<<std::endl;
	}

	int main( int argc , char *argv[] )
	{
		f( ( 0 , 1 , 2 ) );
		_getch();
		return( 0 );
	}

Здесь обыгрывается тот факт, что в C++ запятая это оператор действующий слева направо. Поэтому в функцию f будет передано значение «2».

Расскажите про паттерны проектирования (например, абстрактная фабрика, MVC, Посетитель, Стратегия), для чего они нужны, какие из них Вам доводилось использовать на практике?

Ну, тут какого-то конкретного ответа дать нельзя. Просто этот вопрос является поводом побеседовать ))