Поисковое продвижение сайтов - быстро, качественно, гарантия, возврат денег!

Мой номер

Реклама

Тут Трубовоз Урал доступен по самой низкой цене. . плиты перекрытия пустотные размеры плиты перекрытия челябинск плиты перекрытия железобетонные

Rambler's Top100
Главная arrow Статьи arrow Создание ПО arrow Вопросы на собеседование по C++
Вопросы на собеседование по C++
Написал gdever   
07.09.2008
Оглавление
Вопросы на собеседование по C++
Страница 2
Страница 3
И, наконец, вопросы третьего уровня.

Что вернет функция 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, Посетитель, Стратегия), для чего они нужны, какие из них Вам доводилось использовать на практике?

Ну, тут какого-то конкретного ответа дать нельзя. Просто этот вопрос является поводом побеседовать ))
Сформировать ссылку на статью для вашего сайта | Просмотров: 44927

0

Коментарии (4)
RSS комментарии
 1 ребуси на співбесіді
Написал(а) hhh, в 03-11-2010 12:31
Питання може і цікаві, але не найскладніші. Хоч розвязувати такі ребуси на час і в умовах жорсткого тиску на співбесіді - це не є зовсім корректно.
 2 Написал(а) gdever, в 03-11-2010 12:33
2hhh 
 
Ну да поэтому я сейчас присматриваюсь ко второму списку вопросов. Там чисто вопросы на побеседовать. Без таких мозголомных ребусов. Может если их объединить, то получится золотая середина.
 3 умом МСофт не понять?
Написал(а) hhh, в 03-11-2010 18:59
f:\testc++\misc\misc.cpp(138) : error C2385: ambiguous access of 'x' 
could be the 'x' in base 'A' 
or could be the 'x' in base 'A' 
 
очень содерджательное описание ошибки)
 4 Написал(а) gdever, в 03-11-2010 19:02
2hhh 
 
Сообщениями об ошибках способен вогнать в ступор не только мелкомягкий компилятор. g++ тоже может для простых случаев что-нибудь кошмарное сгенерировать.

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.



Последнее обновление ( 31.05.2009 )
 
< Пред.   След. >
Design by ah-68 - Copyright © 2007 by www.gdzone.ru