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

Непонятные моменты из Страуструпа и не только - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 02:52     Непонятные моменты из Страуструпа и не только #1
Начал я читать Страуструпа, там употребляется много новых слов для меня, вот по ним и вопросы (по порядку)
Но пока не из него: что значит auto (до с++11) ? Во многих статьях говорят, что оно делает переменную локальной (т.е все автоматические и смысла писать нет), но не очень понятно, а написано про это мало.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 02:52     Непонятные моменты из Страуструпа и не только
Посмотрите здесь:

Тайна Страуструпа - std_lib_facilities.h (2) C++
C++ Задачка из книги Страуструпа...
C++ Какая книга Страуструпа
задачки Страуструпа C++
Угадайка от Страуструпа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 03:16     Непонятные моменты из Страуструпа и не только #2
Цитата Сообщение от BuGi Посмотреть сообщение
Во многих статьях говорят, что оно делает переменную локальной (т.е все автоматические и смысла писать нет), но не очень понятно, а написано про это мало.
Может потому, что писать об этом особенно и нечего?
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
25.08.2013, 03:42     Непонятные моменты из Страуструпа и не только #3
Потому что смысл о нем писать, если и так все локальные переменные являются "автоматическими" по умолчанию?
MbICJIuTeJIb_u3
KeM6Pug}I{a
49 / 49 / 2
Регистрация: 23.08.2013
Сообщений: 202
25.08.2013, 03:48     Непонятные моменты из Страуструпа и не только #4
Цитата Сообщение от BuGi Посмотреть сообщение
auto
Может вы путаете его с auto_ptr ?
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
25.08.2013, 03:50     Непонятные моменты из Страуструпа и не только #5
Цитата Сообщение от MbICJIuTeJIb_u3 Посмотреть сообщение
Может вы путаете его с auto_ptr ?
Скорее всего, я думаю, он всё таки имеет в виду auto
MbICJIuTeJIb_u3
KeM6Pug}I{a
49 / 49 / 2
Регистрация: 23.08.2013
Сообщений: 202
25.08.2013, 04:18     Непонятные моменты из Страуструпа и не только #6
Цитата Сообщение от Toshik_ Посмотреть сообщение
Скорее всего, я думаю, он всё таки имеет в виду auto
Все локальные переменные автоматические , то есть auto. Что здесь может быть не понятного ?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.08.2013, 04:34     Непонятные моменты из Страуструпа и не только #7
auto в новом стандарте - это чтобы тип переменной не писать.
простой пример:
C++
1
2
3
4
5
6
7
int SomeFunction()
{
  return 0;
}
 
int res1 = SomeFuntion();
auto res2 = SomeFunction();
компилятор и так знает, какой тип возвращает функция. и вот таким вот auto его можно не писать.
в данном примере это не особо полезно, но бывают типы, писать которые достаточно сложно:
C++
1
2
3
4
5
6
7
8
std::vector<std::vector<int>> v;
...
std::vector<std::vector<int>>::const_iterator it1 = v.begin();
auto it2 = v.begin();
 
или
X x = std::bind(...); // вот тут результирующий тип может зависить от аргументов бинда. и тип там достаточно навороченный
auto xx = std::bind(...); // пофиг какой тип. переменная нам нужна, только для того, чтобы позвать operator ()
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 04:38     Непонятные моменты из Страуструпа и не только #8
....
Цитата Сообщение от DU Посмотреть сообщение
auto в новом стандарте
Цитата Сообщение от BuGi Посмотреть сообщение
что значит auto (до с++11) ?
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 05:27  [ТС]     Непонятные моменты из Страуструпа и не только #9
Цитата Сообщение от MbICJIuTeJIb_u3 Посмотреть сообщение
Все локальные переменные автоматические , то есть auto. Что здесь может быть не понятного ?
Локальность же зависит от области видимости (где определили переменную)? и вдруг внезапно появляется auto. для чего было изначально введено? т.е какое свойство появляется. вот это и не понятно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 06:03     Непонятные моменты из Страуструпа и не только #10
http://ru.wikipedia.org/wiki/%D0%9A%...8F%D1%82%D0%B8
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 13:53  [ТС]     Непонятные моменты из Страуструпа и не только #11
ну понятно
дальше:
C++
1
2
int *v[10];//массив указателей, понятно
int (*v)[10];//указатель массива - ? как его использовать? гугл не выдает ничего на указатель массива
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 15:17     Непонятные моменты из Страуструпа и не только #12
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
//int *v[10];//массив указателей, понятно
    
    int (*v)[10];//указатель массива - ? как его использовать? гугл не выдает ничего на указатель массива
    
    int arr[10];
    v = &arr;
    
    for (int i = 0; i < 10; ++i)
        (*v)[i] = i;
    
    for (int i = 0; i < 10; ++i)
        cout << (*v)[i] << endl;
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 15:39  [ТС]     Непонятные моменты из Страуструпа и не только #13
А нет статьи где побольше про это? Впервые вижу, что так делают)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 15:42     Непонятные моменты из Страуструпа и не только #14
Цитата Сообщение от BuGi Посмотреть сообщение
Впервые вижу, что так делают
Я тоже
Есть более простые и понятные методы работы с массивами.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 16:06  [ТС]     Непонятные моменты из Страуструпа и не только #15
Ну хорошо, дальше из главы про void
"Тип void синтаксически эквивалентен основным типам, но использовать его можно только в производном типе".
Я понимаю, что тут речь идет про void* и преобразовании его туда сюда?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:15     Непонятные моменты из Страуструпа и не только #16
Цитата Сообщение от alsav22 Посмотреть сообщение
Я тоже
Цитата Сообщение от alsav22 Посмотреть сообщение
Как-то так:
или так:
Создание двумерного динамического массива
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:19     Непонятные моменты из Страуструпа и не только #17
Цитата Сообщение от BuGi Посмотреть сообщение
Ну хорошо, дальше из главы про void
Книга длинная? Правило форума: одна тема - один вопрос.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 16:33  [ТС]     Непонятные моменты из Страуструпа и не только #18
Чем конструкция int (*a)[5] отличается от int *a[5]? При выделении памяти int (*arr)[5] = new int [5][5]; второй индекс всегда будет фиксированным?

Добавлено через 57 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
Книга длинная? Правило форума: одна тема - один вопрос.
Не очень, страниц 200 осталось Но на этом мои вопросы пока закончились, остается только с этими разобраться
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:37     Непонятные моменты из Страуструпа и не только #19
Цитата Сообщение от BuGi Посмотреть сообщение
Чем конструкция int (*a)[5] отличается от int *a[5]?
Если совсем примитивно, то
C++
1
2
int *a[5] ; //Массив из пяти указателей на int
int (*a)[5] ; //Указатель на массив из 5 int'ов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 16:56     Непонятные моменты из Страуструпа и не только
Еще ссылки по теме:

Задачка из книги Страуструпа C++
Калькулятор страуструпа C++
C++ Задание из Страуструпа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 16:56  [ТС]     Непонятные моменты из Страуструпа и не только #20
Цитата Сообщение от BuGi Посмотреть сообщение
Ну хорошо, дальше из главы про void
"Тип void синтаксически эквивалентен основным типам, но использовать его можно только в производном типе".
Я понимаю, что тут речь идет про void* и преобразовании его туда сюда?
Последнее
Yandex
Объявления
25.08.2013, 16:56     Непонятные моменты из Страуструпа и не только
Ответ Создать тему
Опции темы

Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru