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

Осмысление указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу понять задание по "ООП" http://www.cyberforum.ru/cpp-beginners/thread930132.html
Добрый вечер! Задание вообщем не сложное и в реализации проблем не ощущаю, но никак не могу разобрать один момент: "Описать абстрактный класс, описывающий четырехугольник. Сделать в нем метод, определяющий площадь. Описать конструкторы, селекторы и модификаторы. Создать два класса-наследника: для квадратов и для трапеций. " "два класса-наследника: для квадратов и для трапеций" - они...
C++ ms dos Доброго времени суток. Только сегодня начала читать С++ для чайников и тут же встала проблема-не могу поставить Ms Dos. Вот что пишет: MS DOS - Популярнейшая операционная система прошлого века ;-) Это самая последняя 16 битная версия MS - DOS. Для установки потребуется 3 дискеты. Скопируйте файл dos622.exe в любой каталог и запустите. Затем последовательно запускайте файлы: Dos622_1.bat,... http://www.cyberforum.ru/cpp-beginners/thread930130.html
C++ Инициализация std::tuple переменным числом аргументов
Добрый вечер. Мне нужно инициализировать объект std::tuple, который является членом некоторого другого шаблонного класса с переменным числом аргументов. Есть такой код, который, естественно, не компилируется: template<typename...Arg> struct Base { Base() : NumElems(sizeof...(Arg)), mems(std::make_tuple(Arg...)){}//std::make_tuple(Arg...) - это то, что мне хотелось бы получить в...
C++ Чтение строки
Помогите пожалуйста! Пытаюсь считать 30-ю строку из файла, но вместо русских символов каракули... Вроде с wchar'ом работаю... ... FILE *stream; wchar_t* line = new wchar_t(); bool er = false; if( _wfopen_s( &stream, tempMainPath, _T("r") ) == 0 ) { for (int i = 0; i < 30; i++) if( fgetws( line, 256, stream ) == NULL)
C++ sort и stable_sort http://www.cyberforum.ru/cpp-beginners/thread930087.html
читаю: stable_sort sorts the elements in the range [first,last) into ascending order, like sort, but stable_sort preserves the relative order of the elements with equivalent values. непонятно: preserves the relative order of the elements with equivalent values. - относительный порядок эквивалентных значений - что это,как это?
C++ Как вызвать метод родительского класса; Собственно вопрос; Есть класс a и b; Класс b унаследован от класса a; И как теперь из класса b вызвать функцию класса a; подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
30.07.2013, 15:23     Осмысление указателей
Цитата Сообщение от Tulosba Посмотреть сообщение
Работа с любыми массивами нагляднее через индексацию. Но раз уж ТСу интересны указатели, то разницы в том, какой массив будет использоваться, не вижу вообще.
Можно бы начать с выделения памяти под одиночную динамическую переменную (сразу после экспериментов со стековыми переменными)). Тогда выделение памяти, инициализация указателя и освобождение памяти складывают какую-то картину. А потом, - динамические массивы.
С другой стороны массив на стеке - хорошее начало для самого первого шага. Как пример косвенного обращения.
три целых переменных на стеке:
C++
1
2
3
4
5
6
int a = 1;//объявили по имени и инициализировали
int b = 2;//
int c = 3;//
cout << a << " ";//обратились по имени
cout << b << " ";//
cout << c << " ";//
массив из трёх целых на стеке:
C++
1
2
3
4
5
6
int Arr[] = {1, 2, 3};//объявили по имени массив - непрерывную область,
// где память под элементы занята последовательно и инициализировали её
cout << Arr[0] << " ";//обратились по имени массива (косвенному признаку группы)
// и индексу (прямой координате в группе) 
cout << Arr[1]  << " ";//
cout << Arr[2]  << " ";//
массив из трёх целых на стеке с доступом через указатель:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int Arr[] = {1, 2, 3};//объявили по имени массив - непрерывную область,
// где память под элементы занята последовательно
int *ptr_Arr = 0;//объявили указатель на целое
ptr_Arr = &Arr[0];//присвоили адрес первого элемента в массиве 
cout << ptr_Arr << " ";//обратились по имени указателя к значению указателя
// выводится 16-ричный адрес первого элемента
cout << (ptr_Arr+1)  << " ";//
cout << (ptr_Arr+2)  << " ";//
 
cout << *ptr_Arr <<" ";//обратились по разименованному имени указателя, то есть по хранимому в нём адресу к значению первого элемента
cout << *(ptr_Arr+1)  << " ";//
cout << *(ptr_Arr+2)  << " ";//
 
Текущее время: 20:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru