Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
1

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

25.08.2013, 02:52. Просмотров 1768. Ответов 56
Метки нет (Все метки)

Начал я читать Страуструпа, там употребляется много новых слов для меня, вот по ним и вопросы (по порядку)
Но пока не из него: что значит auto (до с++11) ? Во многих статьях говорят, что оно делает переменную локальной (т.е все автоматические и смысла писать нет), но не очень понятно, а написано про это мало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 02:52
Ответы с готовыми решениями:

сокеты непонятные моменты
1. Как выбрать оптимальный размер буфера? Я понимаю что можно поставить и 1...

Непонятные моменты с полумостом.
Вначале выкладывал в разделе "Аналоговая и силовая электроника" но ответов нет,...

Непонятные моменты языка
Тут нужно переписать программу с Фортрана-77 на Си, котелок уже не варит. Вот...

DllImport из с++ подскажите непонятные моменты
private extern static IntPtr Print(string a, string b); public...

Некоторые непонятные моменты насчёт Паскаля
Всем привет. Начал учиться на программиста на заочке, дали контрольную, сделать...

56
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 03:16 2
Цитата Сообщение от BuGi Посмотреть сообщение
Во многих статьях говорят, что оно делает переменную локальной (т.е все автоматические и смысла писать нет), но не очень понятно, а написано про это мало.
Может потому, что писать об этом особенно и нечего?
0
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
25.08.2013, 03:42 3
Потому что смысл о нем писать, если и так все локальные переменные являются "автоматическими" по умолчанию?
0
MbICJIuTeJIb_u3
KeM6Pug}I{a
49 / 49 / 1
Регистрация: 23.08.2013
Сообщений: 202
25.08.2013, 03:48 4
Цитата Сообщение от BuGi Посмотреть сообщение
auto
Может вы путаете его с auto_ptr ?
0
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
25.08.2013, 03:50 5
Цитата Сообщение от MbICJIuTeJIb_u3 Посмотреть сообщение
Может вы путаете его с auto_ptr ?
Скорее всего, я думаю, он всё таки имеет в виду auto
0
MbICJIuTeJIb_u3
KeM6Pug}I{a
49 / 49 / 1
Регистрация: 23.08.2013
Сообщений: 202
25.08.2013, 04:18 6
Цитата Сообщение от Toshik_ Посмотреть сообщение
Скорее всего, я думаю, он всё таки имеет в виду auto
Все локальные переменные автоматические , то есть auto. Что здесь может быть не понятного ?
0
DU
1487 / 1133 / 165
Регистрация: 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 ()
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 04:38 8
....
Цитата Сообщение от DU Посмотреть сообщение
auto в новом стандарте
Цитата Сообщение от BuGi Посмотреть сообщение
что значит auto (до с++11) ?
0
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 05:27  [ТС] 9
Цитата Сообщение от MbICJIuTeJIb_u3 Посмотреть сообщение
Все локальные переменные автоматические , то есть auto. Что здесь может быть не понятного ?
Локальность же зависит от области видимости (где определили переменную)? и вдруг внезапно появляется auto. для чего было изначально введено? т.е какое свойство появляется. вот это и не понятно
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,590
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 06:03 10
http://ru.wikipedia.org/wiki/%D0%9A%...8F%D1%82%D0%B8
2
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 13:53  [ТС] 11
ну понятно
дальше:
C++
1
2
int *v[10];//массив указателей, понятно
int (*v)[10];//указатель массива - ? как его использовать? гугл не выдает ничего на указатель массива
0
alsav22
5442 / 4837 / 831
Регистрация: 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;
1
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 15:39  [ТС] 13
А нет статьи где побольше про это? Впервые вижу, что так делают)
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 15:42 14
Цитата Сообщение от BuGi Посмотреть сообщение
Впервые вижу, что так делают
Я тоже
Есть более простые и понятные методы работы с массивами.
0
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 16:06  [ТС] 15
Ну хорошо, дальше из главы про void
"Тип void синтаксически эквивалентен основным типам, но использовать его можно только в производном типе".
Я понимаю, что тут речь идет про void* и преобразовании его туда сюда?
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,590
Записей в блоге: 2
Завершенные тесты: 1
25.08.2013, 16:15 16
Цитата Сообщение от alsav22 Посмотреть сообщение
Я тоже
Цитата Сообщение от alsav22 Посмотреть сообщение
Как-то так:
или так:
Создание двумерного динамического массива
1
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.08.2013, 16:19 17
Цитата Сообщение от BuGi Посмотреть сообщение
Ну хорошо, дальше из главы про void
Книга длинная? Правило форума: одна тема - один вопрос.
0
BuGi
24 / 24 / 11
Регистрация: 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 осталось Но на этом мои вопросы пока закончились, остается только с этими разобраться
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,590
Записей в блоге: 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'ов
1
BuGi
24 / 24 / 11
Регистрация: 02.01.2012
Сообщений: 371
25.08.2013, 16:56  [ТС] 20
Цитата Сообщение от BuGi Посмотреть сообщение
Ну хорошо, дальше из главы про void
"Тип void синтаксически эквивалентен основным типам, но использовать его можно только в производном типе".
Я понимаю, что тут речь идет про void* и преобразовании его туда сюда?
Последнее
0
25.08.2013, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 16:56

Книга Kotlin в действии непонятные моменты
Стр 76. Про функции верхнего уровня. Там есть такая фраза. Вместо этого можно...

Есть непонятные моменты по хтмл и ксс
Приветствую друзья. Ребят, я пытаюсь понять CSS и HTML, и по ходу изучения...

Непонятные моменты из книги Фроловых А. и Г. "C# для начинающих"
Я читаю эту книгу на работе и дома, пока время есть, и переписываю приведенные...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru