<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/index.php?action=history&amp;feed=atom&amp;title=Cpp_tickets1</id>
		<title>Cpp tickets1 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/index.php?action=history&amp;feed=atom&amp;title=Cpp_tickets1"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Cpp_tickets1&amp;action=history"/>
		<updated>2026-05-04T04:37:36Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Cpp_tickets1&amp;diff=833&amp;oldid=prev</id>
		<title>Btv: /* Вопросы по C++, первый семестр */</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Cpp_tickets1&amp;diff=833&amp;oldid=prev"/>
				<updated>2012-01-12T07:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Вопросы по C++, первый семестр&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:25, 12 января 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot; &gt;Строка 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Идея инкапсуляции. Конструктор и деструктор. Класс &amp;quot;самоуправляющегося&amp;quot; массива. Автоматический вызов деструктора. Об опасности неожиданного завершения программы. Различиях malloc/free и new/delete для классов. Конструктор копирования. Проблемы с присваиванием объектов. Как запретить присваивание.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Идея инкапсуляции. Конструктор и деструктор. Класс &amp;quot;самоуправляющегося&amp;quot; массива. Автоматический вызов деструктора. Об опасности неожиданного завершения программы. Различиях malloc/free и new/delete для классов. Конструктор копирования. Проблемы с присваиванием объектов. Как запретить присваивание.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Строки в C. Ввод и вывод в C и C++&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Строки в C. Ввод и вывод в C и C++&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Массивы и указатели. Строки. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Конеч &lt;/del&gt;строки. Строковые константы. Операции со строками.Дескриптор файла, FILE. Что происходит пр открытии закрытии файла. Буфферизация, flush/fflush. Стандартные файлы stdin, stdout, stderr. Потоковый вывод на экран (std::out, std::err). Перегрузка операторов ввода, вывода.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Массивы и указатели. Строки. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Конец &lt;/ins&gt;строки. Строковые константы. Операции со строками.Дескриптор файла, FILE. Что происходит пр открытии закрытии файла. Буфферизация, flush/fflush. Стандартные файлы stdin, stdout, stderr. Потоковый вывод на экран (std::out, std::err). Перегрузка операторов ввода, вывода.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;quot;Внутренности&amp;quot; класса&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&amp;quot;Внутренности&amp;quot; класса&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Поля и методы. Ограничение прав доступа к членам класса. Все поля должны быть private. Почему это удобно. Проблемы с производительностью. inline. Какие методы стоит делать public? Принцип &amp;quot;всегда целого&amp;quot; объекта. Что нужно оптимизировать программисту, а что сделает за него компилятор. Примеры оптимизации: никогда не вызывать функцию дважды. Code conventions.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Поля и методы. Ограничение прав доступа к членам класса. Все поля должны быть private. Почему это удобно. Проблемы с производительностью. inline. Какие методы стоит делать public? Принцип &amp;quot;всегда целого&amp;quot; объекта. Что нужно оптимизировать программисту, а что сделает за него компилятор. Примеры оптимизации: никогда не вызывать функцию дважды. Code conventions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Btv</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Cpp_tickets1&amp;diff=808&amp;oldid=prev</id>
		<title>Btv: Новая страница: «== Вопросы по C++, первый семестр == # Языки C и C++ #:С++ — (почти) надмножество C. Возможность напи…»</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Cpp_tickets1&amp;diff=808&amp;oldid=prev"/>
				<updated>2011-12-27T09:40:37Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «== Вопросы по C++, первый семестр == # Языки C и C++ #:С++ — (почти) надмножество C. Возможность напи…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Вопросы по C++, первый семестр ==&lt;br /&gt;
# Языки C и C++&lt;br /&gt;
#:С++ — (почти) надмножество C. Возможность написания эффективных программ на C++. Сложности программирования на C++: прямая работа с памятью. Превращение кода в программу: компиляция и линковка. Что проверяется при компиляции, а что — при сборке. Структура программы на C/C++:   файлы кода и заголовочные файлы. Что можно поместить в заголовочные файл, а что — нельзя. Макросы — очень плохая идея. Макросы для защиты от повторного включения заголовочного файла. Зависимости между частями программы. Makefile.&lt;br /&gt;
# Как работает программа&lt;br /&gt;
#:Во что превращается код в исполняемом файле. Структура исполняемой программы. Раздел кода, раздел данных. Использование памяти в работающей программе. Стек и куча. Как передаются параметры функции. Где оказываются локальные переменные.&lt;br /&gt;
# Указатели и ссылки&lt;br /&gt;
#: Передача параметра с помощью указателя. Взятие адреса переменной и, наоборот, значения по адресу. Неинициализированные указатели. Нулевой указатель. Потенциальные проблемы при использовании указателей. Ссылки. Сходство с ссылок с указателями и их отличия. Как хранятся ссылки.&lt;br /&gt;
#Распределение памяти в куче&lt;br /&gt;
#: Язык C: malloc/free. Язык C++: new/delete и new[]/delete[]. Почему нужны 2 набора операторов. Потенциальные проблемы. Вопросы производительности. Двумерные массивы.&lt;br /&gt;
#С++ как &amp;quot;С с удобными структурами&amp;quot;&lt;br /&gt;
#: Идея инкапсуляции. Конструктор и деструктор. Класс &amp;quot;самоуправляющегося&amp;quot; массива. Автоматический вызов деструктора. Об опасности неожиданного завершения программы. Различиях malloc/free и new/delete для классов. Конструктор копирования. Проблемы с присваиванием объектов. Как запретить присваивание.&lt;br /&gt;
#Строки в C. Ввод и вывод в C и C++&lt;br /&gt;
#: Массивы и указатели. Строки. Конеч строки. Строковые константы. Операции со строками.Дескриптор файла, FILE. Что происходит пр открытии закрытии файла. Буфферизация, flush/fflush. Стандартные файлы stdin, stdout, stderr. Потоковый вывод на экран (std::out, std::err). Перегрузка операторов ввода, вывода.&lt;br /&gt;
#&amp;quot;Внутренности&amp;quot; класса&lt;br /&gt;
#: Поля и методы. Ограничение прав доступа к членам класса. Все поля должны быть private. Почему это удобно. Проблемы с производительностью. inline. Какие методы стоит делать public? Принцип &amp;quot;всегда целого&amp;quot; объекта. Что нужно оптимизировать программисту, а что сделает за него компилятор. Примеры оптимизации: никогда не вызывать функцию дважды. Code conventions.&lt;br /&gt;
#Инициализация и const&lt;br /&gt;
#: Потенциальные проблема: неинициализированные переменные. Возможности инициализации в конструкторе. Другая проблема — случайное изменение переменных. Решение: константные поля. Констатные методы. Константное возвращаемое значение. &amp;quot;Заразность&amp;quot; const. Идея возвращения значения по ссылке. возможность создания &amp;quot;парных&amp;quot; методов const/не-const. this.&lt;br /&gt;
#Слово static&lt;br /&gt;
#: Статические &amp;quot;глобальные&amp;quot; переменные. Статические локальные переменные. Статические функции. Статические члены класса. Необходимость инстанциации статических полей.&lt;br /&gt;
#Идея namespace&lt;br /&gt;
#: Определение пространств имён. Глобальное пространство имён. Вложенные пространства имён. Анонимный namespace. Директива using. Алиасы для namespace.&lt;br /&gt;
#Перегрузка операторов. &lt;br /&gt;
#: Перегрузка оператора присваивания. Не стоит злоупотреблять перегрузкой (кроме оператора присваивания). Какие операторы можно перегружать. Какие операторы следует перегружать как методы, какие как внешние функции.&lt;br /&gt;
# Наследование&lt;br /&gt;
#: Идея &amp;quot;расширения&amp;quot; типа. Проблемы с копированием. Неявное приведение типов. protected. Подробнее об ограничениях, которые накладывают права доступа. friend'ы. Невозможность полной защиты в C++. Права доступа как средство &amp;quot;самоограничения&amp;quot; для программиста.&lt;br /&gt;
#Перегрузка и переопределение. Полиморфизм&lt;br /&gt;
#: Перегрузка имен методов. Не стоит злоупотреблять перегрузкой. Перегрузка конструкторов. Статическая и динамическая типизация: разные подходы в разных языках. Перегрузка и переопределение — разные слова. Виртуальные методы. Чисто виртуальные методы. Таблица виртуальных функций. Виртуальные деструкторы. Порядок построения таблицы. Опасность вызова виртуальных методов из конструктора. Почему это не запрещено синтаксически?&lt;br /&gt;
# Умные указатели&lt;br /&gt;
#: Идея умных указателей. Для чего могут быть полезны. Какие бывают, как пользваться. Какие могут быть проблемы.&lt;br /&gt;
#auto_ptr&lt;br /&gt;
#: Идея auto_ptr. Поведение при копировнии. Для чего может быть полезен. Какие могут быть проблемы.&lt;br /&gt;
#Идея template'ов&lt;br /&gt;
#: Общая идея template'ов. Шаблоны функций и классов. Вывод шаблонных параметров из аргументов функций. Компиляция шаблонов. Почему их нужно определять в заголовочных файлах.&lt;/div&gt;</summary>
		<author><name>Btv</name></author>	</entry>

	</feed>