Темы, которые касаются не только тестов, IT и Quizful, вы можете создавать в новом разделе Обсуждения.

Вдобавок, появилась возможность комментировать профиль пользователя на странице профиля.

Надеемся, эти нововведения Вам понравятся.
Знаете ли Вы, что

Свои вопросы для тестов можно добавлять на странице с информацией о тесте. При этом для некоторых тестов добавление вопросов закрыто

Топ контрибуторов
loading
loading
Статистика

Тестов: 127, вопросов: 5126. Пройдено: 54989 / 186427.

Тест знаний ООП в C++

Вам необходимо зарегистрироваться и войти в систему для прохождения тестов.
head tail Информация о тесте
категория
C++
пройден799 из 2138
вопросов в тесте12 из 26
требуется0.0 Q
сертификационныйнет
в рейтинге да
время12 минут
авторadmin
head tail Модераторы
Этот тест еще никто не модерирует

Введение в тест по ООП в C++

Тест ООП в C++ посвящен объектно ориентированному программированию в C++.

В тесте рассматриваются вопросы ООП, которые должны знать программисты на C++ различной квалификации. Большинство вопросов практические и содержат фрагменты исходного кода.

Перед прохождением теста настоятельно рекомендуется пройти тест по основам C++. Желательно также познакомиться с тестом C++ среднего уровня.

Статья, которая касается вопроса жизненного цикла объекта в C++ - Scope guard в C++ (boost shared_ptr).

Структура теста ООП в C++

Вопросы теста ООП можно разделить на следующие группы:

  • Жизненный цикл объектов (life cycle). Создание и уничтожение объектов. Конструкторы и деструкторы.
  • Инкапсуляция и друзья класса (friend)
  • Наследование (inheritance) и множественное наследование в C++
  • Полиморфизм (polymorphism)
  • Виртуальные (virtual) функции и методы

Дальнейшее развитие теста ООП в C++

Тест ООП в C++ содержит сравнительно небольшое количество вопросов. Именно поэтому в ближайшие планы команды Quizful входит пополнение пула вопросов данного теста.

Так как тест ООП в Си++ покрывает достаточно широкую тематику, планируется явно разбить вопросы теста ООП на разделы.

Если у Вас есть желание пополнить тест своими вопросами, присылайте их нам или же добавляйте через специальную форму на странице с результатами теста сразу после его прохождения.

Ждем Ваших комментариев по поводу вопросов теста.


Важно: Ниже обсуждается только тест в целом: покрытие тематик, типы вопросов, пути улучшения теста и так далее.

Замечания, касающиеся отдельных вопросов теста, просьба оставлять в соответствующих топиках,
которые доступны на странице результатов прохождения теста возле каждого вопроса.

Комментариев: 12
 gaalreactosdev03.02.2010 | 21:31:42
А разве деструктор не должен быть виртуальным? Хотя в примере это не принципиально так как динамическая память не выделяется.

class A {
A() {cout << "A";}
~A() {cout << "~A";}
};

class B {
B() {cout << "B";}
~B() {cout << "~B";}
};

class C: public A {
B m_b;
C() {cout << "C";}
~C() {cout << "~C";}
};

void Test() {
C c;
}

Будет - ABC~C~B, а вот ~A вызван не будет, так как это не виртуальный деструктор.
ответить
 analizer03.02.2010 | 22:06:10
лолшто?
ответить
 gaalreactosdev04.02.2010 | 08:35:14
Там объекты в стеке, а так вот:

http://habrahabr.ru/blogs/cpp/64280/
http://www.kalinin.ru/programming/cpp/28_07_00.shtml Виртуальные деструкторы

Хотя эта ошибка проявляется только для объектов в динамической памяти и если указатель на объект приведен к базовому типу класса.
ответить
 analizer04.02.2010 | 09:16:45
Спасибо, Кэп. Вот только я всё равно не понял какое отношение имеет первый пост к здравому смыслу и C++.
ответить
 gaalreactosdev04.02.2010 | 10:27:44
Я вчера загнался под вечер.

Там в стеке создается объект класса C и не приводится к базовому классу. Поэтому для него не страшно, что не задан атрибут virtual для деструктора и память в нем не выделяется.
ответить
 gaalreactosdev04.02.2010 | 10:28:14
В смысле в классе нигде не выделяется.
ответить
 m_cplusplus16.10.2009 | 20:31:27
Еще подметил что у Вас много примеров с ошибочными инициализациями в классе
class A
{
const int a=5;//Хм, это не C#. Ошибка, нужно static const int a=5;
};
ответить
 analizer18.10.2009 | 13:28:04
Пролистал вопросы данного теста. Ни одного с таким дефектом не нашёл.
В будущем, дабы не тратить впустую время, претензии к отдельным вопросам буду рассматривать только если комментарий оставлен к вопросу.
ответить
 m_cplusplus15.10.2009 | 19:19:17
Компилятор MVSC++ 2005 сьест этот код нормально :)
class Abstract {
public:
virtual void pureVirtual() = 0 {
// реализация
}
};
ответить
 analizer15.10.2009 | 22:59:58
рад за вас и ваш "компилятор", но насколько мне известно разработка теста "VC++ и его мнение относительно стандарта языка C++" сейчас не ведётся и данный тест - по языку.
ответить
 seosterva26.06.2009 | 00:19:38
я не думала что так хорошо знаю ООП, оказывается у меня ещё есть шансы сдать сегодняшний экзамен хотя бы на 4)
ответить
 romanik08.08.2009 | 02:08:03
И что, сдали?
И как Ваша оценка связи вопросов, которые выносятся на экзамен с их реальным применением? В мое время это была сплошная терминология, причем какой-то жуткий "суржик". Сдал на "отлично" и заменил нормальными знаниями в ходе следующих 5 лет работы. Очень надеюсь, что сейчас окажусь неправ.
ответить
Добавить комментарий