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

Как работает ссылка с объектами, классами и перегруженным оператором [] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Error: Unresolved external 'character::character(int)' http://www.cyberforum.ru/cpp-beginners/thread612793.html
Error: Unresolved external 'character::character(int)' referenced from C:\USERS\АДМИНИСТРАТОР\DOCUMENTS\RAD STUDIO\PROJECTS\MYPROJECTS\BLOODSWORD\WIN32\DEBUG\MAINM.OBJ вот такая ошибка. исходный код: void new_game() { int klas; hist::start(); std::cin>>klas; character pers(klas); std::cout<< pers.agility;
C++ Работа программы на С++ с вебом Вообщем, хочу научиться писать программы, которые бы брали информацию из интернета, например брали погоду с gismeteo.ru, сообщали о новом письме на почте, скачививали новое видео с ютуба. Вопрос один: что для этого надо изучать? Обязательно ли знать php? Не знал, в каком разделе лучше создать данную тему, а так-как фундаментом будет с++, решил создать в этом разделе. http://www.cyberforum.ru/cpp-beginners/thread612789.html
C++ Сортировка массива
В общем програ работает без выделении памяти нормально, но как только я добавил туда указатель на массив, после компиляции и запуска ее она падает с ошибкой, помогите найти ошибку в коде..... #include <stdafx.h> #include <iostream> #include <stdlib.h> using namespace System; using namespace std;
Необработанные исключения в MS Visual 2010 C++
Причиной чего может быть это сообщение и как его решить? У меня идет проверка в 3ех мерном массиве пересечения фигур и где то при проверке 9 с 11 вылетает меседж.
C++ Среднее значение полученных чисел, количество значений в массиве, превышающих среднее http://www.cyberforum.ru/cpp-beginners/thread612778.html
Вот решаю одну задачку из книги Праты: "Напишите программу, читающую в массив double до 10 значений пожертвований. Программа должна прекращать ввод при получении нечисловой величины. Она должна выдавать среднее значение полученных чисел, а также количество значений в массиве, превышающих среднее." Что-то нахимичил очень громоздкое, но вот пока проблема на счёт получения нечисловой величины. ...
C++ Глобальные и статические глобальные переменные Скажите, чем отличаются глобальные переменные от статических глобальных переменных? подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.06.2012, 16:04     Как работает ссылка с объектами, классами и перегруженным оператором []
Вот эквивалентный код:
C++
1
2
3
4
5
6
7
8
9
10
11
for(int i=0; i<s.Size()-1; i++) 
{
  Point p = s[i];
  p = Point(2*i, 2*i);
  // вот это присваивание локальной переменной.
  // То, что находится в StackArray при этом не изменяется, т.е. там точки с нулевыми координатами
  // как были, так и остались без изменения
 
  // Далее идет вывод этих точек с нулевыми координатами
  cout << s[i] <<" index of element: " << i << endl;  
}
Ссылка по внутреннему устройству не отличается от указателей. Разница лишь в синтаксисе и
правилах инициализации. Далее варианты кода с ссылкой и с указателем:

C++
1
2
3
4
5
6
7
8
9
for(int i=0; i<s.Size()-1; i++) 
{
  Point& p = s[i];
  p = Point(2*i, 2*i);
  // вот это присваивание тому, на что ссылается p (ссылается на iый элемент в стеке).
  // То, что находится в StackArray в iой позиции при этом изменяется на Point(2*i, 2*i);
 
  cout << s[i] <<" index of element: " << i << endl;  
}
Вариант, когда оператор [] возвращает указатель
C++
1
2
3
4
5
6
7
8
9
for(int i=0; i<s.Size()-1; i++) 
{
  Point* p = s[i];
  *p = Point(2*i, 2*i);
  // вот это присваивание тому, на что указывает p (указывает на iый элемент в стеке).
  // То, что находится в StackArray в iой позиции при этом изменяется на Point(2*i, 2*i);
 
  cout << *s[i] <<" index of element: " << i << endl;  
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru