Форум программистов, компьютерный форум CyberForum.ru

Пример задания с сайта Яндекса =) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.90
Fantomайзэ
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 4
22.08.2011, 14:39     Пример задания с сайта Яндекса =) #1
Доброе время суток всем страждущим
Просматривая объявления вакансий для программистов не мог не заметить некую шаблонность что-ли, этих самых объявлений.
В них говориться что нужен специалист, профессионал.
Владение стандартными алгоритмами, знание основных структур данных , знание ООП и умение применять его на практике и тд...
А кто он ? Этот самый профессионал ?
В моем понимании профессионал это человек закончивший профильное образование и зарабатывающий себе на жизнь им. (нууу программист пишет программы )
Так же понятно что человек все на свете знать не может, а технологии довольно быстро развиваются

В связи с чем и вопрос, кто по вашему может считаться профессионалом и какими знаниями и навыками он должен обладать обязательно чтобы таковым считаться ? (Опыт само собой конечно )
Может есть какие-нибудь блин тесты ?? Там задания какие-нибудь ? Применительно к С и С++. Ну я утрирую конечно ... но решив которые можно было бы знать что ты обладаешь обязательным минимумом ...
блин все я сдаюсь
Ну вы меня поняли я надеюсь

Второй вопрос более предметный
Это тестовое задание с сайта Яндекса

Продемонстрируйте свои знания

Вопрос 1

Перечислите все проблемы, которые вы видите в данном коде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};
 
class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};
 
 
void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}
вот вы какие видите ?

Благодарю за внимание, ваш Фантомайзе
Уважаемые модераторы, прошу сильно не пинать меня, если я что не так разместил О_о ... или не там О_о
Хотел экспертам кинуть но мне туда ходу нет О_о

 Комментарий модератора 
Используйте теги форматирования кода!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2011, 14:39     Пример задания с сайта Яндекса =)
Посмотрите здесь:

Задания со строками C++
C++ Задания по C++
Пример задания C++
WinInet - Сохранить на диске главную страницу яндекса C++
Задача от Яндекса на знание C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
22.08.2011, 17:58     Пример задания с сайта Яндекса =)
  #21

Не по теме:

Сыроежка, оверквотинг это нехорошо

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fantomайзэ
0 / 0 / 0
Регистрация: 18.08.2011
Сообщений: 4
23.08.2011, 07:19  [ТС]     Пример задания с сайта Яндекса =) #22
Цитата Сообщение от Deviaphan Посмотреть сообщение
Настоящий профессионал использует не менее пятидесяти смайликов на каждую тысячу слов.

Добавлено через 3 минуты
И, если придираться, то конструкторы без explicit объявлены.
Какой вы придирчивый молодой человек
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,210
Завершенные тесты: 1
23.08.2011, 13:08     Пример задания с сайта Яндекса =) #23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class Foo
{
public:
    Foo(int j) { i=new int[j]; } // [1] конструктор позволяет непреднамеренное
                                 //     преобразование   
    ~Foo() { delete i; } // [2] нужно вызывать оператор delete[] для массивов
                         //     а не для скаляров, см. выделение памяти в
                         //     конструкторе
private:
    int* i;
 
    // [3] нужно запретить конструктор копирования и оператор копирования
    //     определив их в private части класса, чтобы предотвратить
    //     побочные эффекты сгенерированных компилятором побитовых версий
    Foo(const Foo &);
    Foo & operator= (const Foo &);
};
 
class Bar: Foo
{
public:
    Bar(int j)   // [4] то же что и [1]
        : Foo(j) // [5] т.к. коструктор по умолчанию не определен, то
                 //     необходимо явно вызывать данную версию конструктора
                 //     базового класса
    { i=new char[j]; } 
    ~Bar() { delete i; } // [6] то же что [2] см. описание в Foo
private:
    char* i;
    // [7] то же что [3] см. описание в Foo
    Bar(const Bar &);
    Bar & operator= (const Bar &);
};
 
int main() // [8] по стандарту нужно чтобы функция main() возвращала int
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200); // [9] т.к. используется private наследование, то
                         //     явное приведение тут необходимо, иначе ошибка
                         //     'Foo' is an inaccessible base of 'Bar'
 
    *f=*b;               // [10] срезка
 
    delete f;
    delete b;            // [11] т.к. деструктор Foo не объявлен как виртальный,
                         //      то имеем здесь неопределенное поведение
}
Mee
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
23.08.2011, 13:16     Пример задания с сайта Яндекса =) #24
Объясните, кто разбирается.
Не стоит ли занести в класах копировальные конструкторы в private, что бы ограничить юзера от них?
В противном случае компилятор наградит нас своим копированием, и копироватся будет не информация указателя, а сам указатель и в случае
C++
1
2
Foo f = new Foo(2);
Foo f2 (f);
вызовется два деструктора, которые попытаются удалить один и тот же указатель.

Am I right or am I right?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2011, 13:27     Пример задания с сайта Яндекса =)
Еще ссылки по теме:

Задания по с++ C++
Не компилируется пример пример! C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.08.2011, 13:27     Пример задания с сайта Яндекса =) #25
Цитата Сообщение от Mee Посмотреть сообщение
Не стоит ли занести в класах копировальные конструкторы в private, что бы ограничить юзера от них?
Скорее, нужно реализовать конструктор копирования.
Yandex
Объявления
23.08.2011, 13:27     Пример задания с сайта Яндекса =)
Ответ Создать тему
Опции темы

Текущее время: 23:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru