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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
#1

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

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

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

Калькулятор Страуструпа (C++) - C++
Добрый вечер! Я изучаю "Принципы и практика использования C++" Страуструпа. Все, что он пишет, хорошо понимаю, но следующая логика...

Калькулятор Страуструпа С++ - C++
Я новичок в С++, пытаюсь читать Страуструпа. Дошёл до строчного калькулятора и не понимаю принципов его работы, перечитывал главу 4 раза....

Задание из Страуструпа - C++
Добрый день,дорогие форумчане.В общем читаю книжечку Страуструпа.Выполняю задания.Вот что-то у меня ступор.Прошу Вашего совета:) ...

задачки Страуструпа - C++
Сижу в обнимку с талмудом Страуструпа, изучаю С++ самостоятельно. Просить код писать не буду, разберусь. Некоторые терминологические вещи...

Калькулятор страуструпа - C++
Ну по крайней мере если это и не он, то очень на него похож. Проблема в скобках.Например: (1+1 - всё хорошо, выплывет ощибка...

Угадайка от Страуструпа - C++
Писал, писал, устал. В логике ошибок нет. Как алгоритм оптимизировать и спагетти свернуть? #include "std_lib_facilities.h" int...

Задачка из книги Страуструпа... - C++
Доброго времени суток всем! Заранее благодарен за ответы и, возможные, пути исправления... Итак: "Считайте последовательности чисел...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
1481 / 1057 / 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
5416 / 4812 / 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
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,049
Записей в блоге: 3
Завершенные тесты: 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
5416 / 4812 / 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
5416 / 4812 / 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
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,049
Записей в блоге: 3
Завершенные тесты: 1
25.08.2013, 16:15     Непонятные моменты из Страуструпа и не только #16
Цитата Сообщение от alsav22 Посмотреть сообщение
Я тоже
Цитата Сообщение от alsav22 Посмотреть сообщение
Как-то так:
или так:
Создание двумерного динамического массива
alsav22
5416 / 4812 / 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
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,049
Записей в блоге: 3
Завершенные тесты: 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++
Здравствуйте могли бы вы мне помочь в решении задачи. Вот собственно само условие. Условие: Теперь измените тело цикла так, чтобы он...

Тайна Страуструпа - std_lib_facilities.h ! - C++
Доброго времени суток. Я начал изучать чудесный язык программирования С++ по книге Принципы и практика использования C++ Страуструпа. ...

Калькулятор в книге Страуструпа - C++
Приветствую всех кто читает эту тему. У меня возникла проблема во время написании калькулятора. Он был описан в 6 главе книги и там же...

Достаточно ли книги Страуструпа? - C++
В общем, учу с++ по страуструпу и думаю: &quot; а хватит ли этого???&quot; . Подскажите книгу, по которой учиться дальше? Спасибо!

Задача из книги Страуструпа - C++
Нужна ваша помощь или хотя бы подсказка, в одном из упражнений в книге Страуструпа &quot; Программирование. Принципы и практика с использованием...


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

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

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