Результаты поиска
|
|
|
Matou | Дата: Пятница, 14 Января 2011, 20:21 | Сообщение # 1042 | Тема: Нубский ворпос. |
Исходный коТ
Сейчас нет на сайте
| Kornival, я все равно не понял чего ты хочешь и о каких обьектах идет речь.
|
|
| |
Matou | Дата: Пятница, 14 Января 2011, 18:14 | Сообщение # 1043 | Тема: Нубский ворпос. |
Исходный коТ
Сейчас нет на сайте
| Ну итератор для массива сделать довольно таки просто, при условии что память не будет перераспределяться. Глядя на твой код выше довольно тяжело понять что ты хочешь. Если тебе нужно просто обращяться через итератор к динамическому массиву, то это делается примерно так: Code int *point = new int[size]; // наш массив, на него указывает point
int *inerator = point; // вот так можно определить итератор // теперь можно обращяться через него // пример for(int i = 0; i < size; ++i) cout << *(iterator++) То что я написал носит чисто илюстрационный характер, делать так крайне не рекомендуется, во первых хранить итератор отдельно от массива не удобно и тяжело, для их обьединения нужно использовать структуру, во вторых желательно иметь методы по перераспределению помяти, а для этого лучше использовать классы, а не структуры, ну и в последних, но не в последнюю очередь, не зачем изобретать велосипед, все это уже реализовано в STL
Сообщение отредактировал Matou - Пятница, 14 Января 2011, 18:15 |
|
| |
Matou | Дата: Пятница, 14 Января 2011, 15:37 | Сообщение # 1044 | Тема: Нубский ворпос. |
Исходный коТ
Сейчас нет на сайте
| Quote (Kornival) Почему компилятор орет об ошибке? То что стоит слева в выражинии ((int*)point+1) = new int; не обьект(не LValue), а ты пытаешся ему что-то присвоить, как можно что-то присвоить выражению?
Сообщение отредактировал Matou - Пятница, 14 Января 2011, 18:03 |
|
| |
Matou | Дата: Пятница, 14 Января 2011, 03:21 | Сообщение # 1045 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| ezhickovich, единомышленник Правда я еще всем K&R советую, хоть она и по Си, но все же хороша и там есть ответы на заданые в теме вопросы.
|
|
| |
Matou | Дата: Среда, 12 Января 2011, 18:40 | Сообщение # 1046 | Тема: Программист или художник? |
Исходный коТ
Сейчас нет на сайте
| Кругом программисты, одни программисты... Alwind, убедил! Ушел в программисты
|
|
| |
Matou | Дата: Среда, 12 Января 2011, 17:46 | Сообщение # 1047 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| Да вроде все обьяснил, почитай подумай и поймешь.
|
|
| |
Matou | Дата: Среда, 12 Января 2011, 16:42 | Сообщение # 1048 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| Указатель на указатель же)) Code int* A[10]; // делаем массив из 10 указателей на целые int** p; // делаем указатель на указатель
//теперь можно присвоить елементам массива начала каких-нить других массивов
int B[10]; // массив из 10 целых
A[3] = B; // четвертый елемент массива А содержит указатель на начало массива B
p = A; // p содержит указатель на первый элемент массива A, при том что массив А состоит из указателей // т.е. p содержит указатель на указатель.
// теперь можно получать доступ к массиву B через указатель p
**(p + 3) = 10; // присвоить первому елементу B значение 10
*(*(p + 3) + 3) = 20; // присвоить четвертому елементу из B значение 10 Ну и т.д. Просто жеж) и кстати Code p[3][0] = 10; // тоже что и **(p + 3) = 10 p[3][3] = 20; // тоже что и *(*(p + 3) + 3) = 20
Сообщение отредактировал Matou - Среда, 12 Января 2011, 16:55 |
|
| |
Matou | Дата: Среда, 12 Января 2011, 15:36 | Сообщение # 1049 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| * - операция разыменования. Переменная p (int* p), это указатель, чтобы получить переменную на которую он указывает его надо разыменовать *p. p - возвращяет указатель *р - возвращяет переменную на которую указывает указатель.
Сообщение отредактировал Matou - Среда, 12 Января 2011, 15:36 |
|
| |
Matou | Дата: Среда, 12 Января 2011, 15:21 | Сообщение # 1050 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| Quote (ezhickovich) A + 5*sizeof(int) Это то что на самом деле происходит, но писать так в коде не имеет смысла т.к. в арифметике указателей операция масштабирование (*sizeof(type)) происходит автоматически. Quote (Hagrael) в памяти создаётся массив, а в A заносится указатель на 0-ю ячейку. А как тогда осуществляется это: cout << A[5]; Операция A[5] эквивалентна операции *(A + 5). Ну просто жеж)
Сообщение отредактировал Matou - Среда, 12 Января 2011, 15:26 |
|
| |
Matou | Дата: Среда, 12 Января 2011, 14:09 | Сообщение # 1051 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| Quote (Hagrael) Начал читать статью про указатели и ничего не понял. Любой массив - указатель на первый элемент массива... ?! То есть на самом деле массив указывает на 0-ю ячейку массива... Имя массива является константным указателем на первый элемент массива. Например: Code int A[10]; // какбэ массив из 10 целочисленных элементов, от 0 до 9 int* p; // какбэ указатель на целочисленную переменную
p = A; // теперь р и A тождественны при выполении каких-либо действий
p[9] = 8; // присвоить последнему элементу 8 A[9] = 8; // тоже самое
*(p + 2) = 9; // присвоить третьему элементу 9 *(A + 2) = 9; // тоже самое
// а вот единственное различие
p += 2 // можно A += 2 // нельзя, константа жеж ну просто же Quote (Hagrael) А в ячейке этой что написано какому массиву она принадлежит? о_О Неа, ниче там не написано.
|
|
| |
Matou | Дата: Среда, 12 Января 2011, 13:53 | Сообщение # 1052 | Тема: Программист или художник? |
Исходный коТ
Сейчас нет на сайте
| Так ведь есть еще всякие сценаристы, концептологи и левелдизайнеры, которые вроде ни тем ни другим не занимаются.
|
|
| |
Matou | Дата: Среда, 12 Января 2011, 13:13 | Сообщение # 1053 | Тема: Вы читаете диалоги в браузерныз ММОРПГ играх? Опрос. |
Исходный коТ
Сейчас нет на сайте
| Вообще не люблю читать, даже на форумах пролистываю длинные посты в тредах.
|
|
| |
Matou | Дата: Вторник, 11 Января 2011, 22:14 | Сообщение # 1054 | Тема: Нубский ворпос. |
Исходный коТ
Сейчас нет на сайте
| Quote (Kornival) Object &Function(); Object *Function(); Какая разница? Первая функция возвращяет ссылку, втора функция указательно, все просто же)
|
|
| |
Matou | Дата: Вторник, 11 Января 2011, 22:07 | Сообщение # 1055 | Тема: Кто круче: Ферамон или Александр Мецель? |
Исходный коТ
Сейчас нет на сайте
| Quote (FERAMON) Совпадут ли ваши ожидания с нашим результатом. Cейчас вас скорее по личным симпатиям будут судить чем по таланту, чтобы этого не повторилось не подписывайте свои рассказы, пусть сначала оценит народ.
|
|
| |
Matou | Дата: Вторник, 11 Января 2011, 21:39 | Сообщение # 1056 | Тема: Зачем нужен Интернет!? |
Исходный коТ
Сейчас нет на сайте
| Lord16, Вконтакт рулит конечно в этом плане, я там даже "фильмы детства" нахожу:), но качество не то
Сообщение отредактировал Matou - Вторник, 11 Января 2011, 21:39 |
|
| |
|
Matou | Дата: Понедельник, 10 Января 2011, 22:41 | Сообщение # 1058 | Тема: Кем вы работаете? |
Исходный коТ
Сейчас нет на сайте
| Quote (Мегапаладин) интересно в первую очередь узнать чем админы и модераторы занимаются. Мне тоже очень интересно. Конечно никто не обязан распинаться и рассказывать кто чем занимается, но все же интесно ведь Я вообще аутсайдер, к геймдеву практически никакого отношения не имею.
|
|
| |
Matou | Дата: Понедельник, 10 Января 2011, 22:14 | Сообщение # 1059 | Тема: #if |
Исходный коТ
Сейчас нет на сайте
| Ладно, тогда я обьясню) Инициализация - это присваивание обьектам в памяти начальных значений, а функция это никакой не обьект, это просто набор инструкций вызываемый для совершения какой-либо операции, поэтому проинициализировать ее ну никак нельзя. Конечно в функциях могут быть локальные обьекты инициализируемые при вызове функции и глобальные статические инициализируемые до начала выполнения программы, но это опять таки ни какая не инициализация функции. Ну и о прототипах, рас уш речь зашла. Они нужны для того чтобы показать компилятору интерфейс вызываемой функции что позваляет правильно организовать тип ее вызова, тип передаваемых параметров, способ их передачи и тип возвращяемого значения.
|
|
| |
|