| Вопросы на собеседование по C++ |
| Написал gdever | ||||||||||||||||
| 07.09.2008 | ||||||||||||||||
Страница 3 из 3
И, наконец, вопросы третьего уровня.
Что вернет функция int f( int i , int j , int k ){return(k);}, если её вызвать так:
В данном случае как раз undefined behaviour и поэтому сказать, что именно вернет функция, нельзя. Связано это с тем что порядок вычисления параметров функции неопределен стандартом. Ну а что касается примера – файл с C++ кодом должен заканчиваться символом переноса строки, иначе это ub )) Что неправильно в данном коде:
Сколько байт в памяти займет приведенный ниже класс?
class CSomeClass{
public:
int *ptr;
virtual void f( void ){}
};
Во-первых, у нас есть виртуальная функция, поэтому в объекте всегда будет присутствовать указатель таблицу виртуальных функций, и занимать, как правило, 4 байта. Во-вторых, есть указатель на целое число. Он, в зависимости от платформы, может занимать 2, 4 или 8 байт 4 (то же самое относится и к указателю на таблицу виртуальных методов).
Что будет выведено на экран?
Здесь обыгрывается тот факт, что в C++ запятая это оператор действующий слева направо. Поэтому в функцию f будет передано значение «2». Расскажите про паттерны проектирования (например, абстрактная фабрика, MVC, Посетитель, Стратегия), для чего они нужны, какие из них Вам доводилось использовать на практике? Ну, тут какого-то конкретного ответа дать нельзя. Просто этот вопрос является поводом побеседовать ))
Только зарегистрированные пользователи могут оставлять коментарии. |
||||||||||||||||
| Последнее обновление ( 31.05.2009 ) | ||||||||||||||||
| < Пред. | След. > |
|---|


