2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
||||||
1 | ||||||
Доскональный разбор кода C++27.08.2011, 11:51. Показов 3729. Ответов 16
Метки нет (Все метки)
Ребят, объясните пожалуйста следующие строчки кода. Что происходит в результате их выполнения?
0
|
27.08.2011, 11:51 | |
Ответы с готовыми решениями:
16
Разбор кода Разбор кода Разбор кода Разбор кода C++ |
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
27.08.2011, 11:59 | 2 |
В первой строке создаем целочисленный массив размером 4 и сразу его заполняем.
Во второй строке создаем целочисленный вектор и инициализируем его ранее созданным массивом - http://www.cplusplus.com/refer... or/vector/
1
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|
27.08.2011, 12:02 [ТС] | 3 |
Мне интересно как происходит инициализация вектора v? Что значит первый параметр в скобках? И что значит второй параметр скобках?
0
|
Higher
|
|||||||||||
27.08.2011, 12:02 | 4 | ||||||||||
1
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|||||||||||
27.08.2011, 12:05 | 5 | ||||||||||
Вызываеться такой конструктор:
1
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
27.08.2011, 12:05 | 6 |
Все элементы массива в памяти расположены последовательно.
a - указатель на первый элемент массива, a + 4 - в данном примере указатель на следующую ячейку, после последней. Вот конструктор и принимает два указателя. Пример по ссылке выше.
2
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|
27.08.2011, 12:33 [ТС] | 7 |
Я не пойму. Если "между", то a, то есть первый элемент массива не должен был копироваться, ведь a+4 не копируется. Получается a включительно копируется.
0
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
||||||
27.08.2011, 15:05 [ТС] | 9 | |||||
Необходимо разобраться в следующем коде:
2) Что из себя представляет функция substr()? Какие параметры ей передаются?
0
|
27.08.2011, 15:13 | 11 |
Добавлю про a+4. Если к переменной-указателю прибавляется 1, то ее значение увеличивается на количество байт данного типа, поэтому при a+4 к a добавляется 4*sizeof(a) байт
1
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|||||||||||
27.08.2011, 16:17 [ТС] | 12 | ||||||||||
Необходимо разобраться в следующем коде:
0
|
Заблокирован
|
|
27.08.2011, 16:30 | 13 |
этот ничем не отличается, а вот если бы вместо double был бы string к примеру, то сначала кажись должен конструтор по умолчанию вызваться, а потом только оператор присваивания в теле конструктора, что не есть гуд, когда можно оператор копирования замутить прямо в списке инициализации
1
|
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185
|
|
27.08.2011, 16:35 [ТС] | 14 |
0
|
Заблокирован
|
|
27.08.2011, 16:40 | 15 |
У тебя отладчик есть? В vs помоему на f11 жмёшь это Trace into набери два конструктора со string и посмотри сам разницу
1
|
27.08.2011, 16:42 | 16 |
Не по теме: Сабж: Роберт Лафоре "В теле конструктора, как правило, производятся более сложные вещи, чем инициализация. " Где-то я слышал, что инициализация, типа Num(0) быстрее, чем в теле конструктора. Хотя, возможно, я ошибаюсь.
1
|
Заблокирован
|
||||||
27.08.2011, 16:43 | 17 | |||||
1
|
27.08.2011, 16:43 | |
27.08.2011, 16:43 | |
Помогаю со студенческими работами здесь
17
Разбор кода разбор кода Разбор кода CSharp Разбор кода программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |