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

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

Войти
Регистрация
Восстановить пароль
 
KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,980
#1

Теория - C++

02.03.2011, 18:50. Просмотров 546. Ответов 6
Метки нет (Все метки)

Добрый день! Появились парa вопросов по теории.
1) Есть ли какая то разница между обращением p-> и (*p). ? Если есть - то желательно примерчик, когда она проявляется.
2) Есть ли разница по скорости доступа между прямым доступом к a и через getA()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class aaa
{
 public:
 int a; 
 aaa()
 {
  a=0;
 }
 int getA()
 {
   return(a);
 }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 18:50     Теория
Посмотрите здесь:

теория - C++
Добрый день!!! срочно нужины 2 примера : 1)чтобы нельзя было заменить цыкл for на while и еще один пример когда есть цыкл while но...

Теория по С++ - C++
Здравствуйте. Необходимо ответить на вопрос, что такое идентификаторы, пунктуаторы, ключевые слова и операторы. Я искал в гугле по...

Теория - C++
Поясните мне, есл можете, что значит Описание используемых структур данных. в графе. P S оформляю отчет по курсовой

теория - C++
какя разница между кодами ? if(a>b) a++; b++; и if(a>b) a++;

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

теория - C++
народ мож кто знает где можно найти теорию или что-нибудь на подобии пособия,там где описывается про функции,про их применения и т.д. и...

Теория по С++ - C++
Помогите ответить на вопросы, очень нужно к экзамену. На что-то ответила, но не знаю правильно ли( 1. Что находится в списке...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
02.03.2011, 19:00     Теория #2
Цитата Сообщение от KuKu Посмотреть сообщение
Есть ли какая то разница между обращением p-> и (*p).
Здесь не уверен, но подозреваю, что никакой.
Цитата Сообщение от KuKu Посмотреть сообщение
Есть ли разница по скорости доступа между прямым доступом к a и через getA()
Здесь, конечно, уже есть, потому что обращение через функции требует дополнительных ресурсов на вызов этой самой функции. Однако, в случае расопложения данных класса в открытый доступ и прямого обращения нарушается инкапсуляция.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.03.2011, 19:04     Теория #3
1) Насколько мне известно, разницы никакой. Разве что в удобстве. Если ошибаюсь, думаю, коллеги поправят)))
2) Если компилятор по какой-то причине не пожелает сделать эту функцию встраиваемой, то разница по скорости конечно будет. Ведь надо будет перейти в функцию getA, а затем скопировать a в место вызова.

Добавлено через 1 минуту

Не по теме:

fasked, опередили, как обычно)))

KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,980
02.03.2011, 19:07  [ТС]     Теория #4
Цитата Сообщение от fasked Посмотреть сообщение
Здесь не уверен, но подозреваю, что никакой.

Здесь, конечно, уже есть, потому что обращение через функции требует дополнительных ресурсов на вызов этой самой функции. Однако, в случае расопложения данных класса в открытый доступ и прямого обращения нарушается инкапсуляция.
Про вызов функции это ясно. Не так выразился, есть ли существенная разница в скорости? В каком-нибудь к примеру флэше эта разница очень приличная. Может как то компилятор оптимизирует ?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.03.2011, 19:10     Теория #5
KuKu, как я уже сказал, вполне возможно, что он сделает данную функцию встраиваемой (вероятнее всего так он и сделает). Т.е. вместо вызова подставится тело, в данном случае это будет полностью эквивалентно прямому доступу к a.
KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,980
02.03.2011, 19:11  [ТС]     Теория #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
1) Насколько мне известно, разницы никакой. Разве что в удобстве. Если ошибаюсь, думаю, коллеги поправят)))
Хм.. а опять же в скорости есть ли разница?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2011, 19:30     Теория
Еще ссылки по теме:

Теория по С++ - C++
Помогите с вопросами по экзамену по файлам 10) Беззнаковые типы данных. 23) Объявление функции. 24) Определение функции. ...

Массивы теория - C++
Дано: В массиве двухбайтовых чисел, содержащем N элементов найти минимальное и максимальное значение и поменять их местами. Можно ли...

Теория графики - C++
Вобщем в кратце. Кто может подсказать литературу по теории графики? Если проще построение маленькой 2D игры и разные поведения главного...

Теория С++ (профан) - C++
Всем доброго времени суток! Такая вот ситуация: начался семестр и стали объяснять С++(три года гоняли просто по Си), преподаватель сам...

Теория вероятности - C++
Для участия в судебном процессе из 20 потенциальных кандидатов, среди которых 8 женщин и 12 мужчин, выбирают 6 присяжных заседателей. После...


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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
02.03.2011, 19:30     Теория #7
Цитата Сообщение от KuKu Посмотреть сообщение
Хм.. а опять же в скорости есть ли разница?
Результат одинаковый
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <boost\progress.hpp>
 
class Sample {
public:
    int a, b, c;
};
 
int main()
{
    Sample *s = new Sample;
 
    boost::progress_timer t;
    for (size_t i = 0; i < 0xFFFFFF; ++i)
        (*s).a = i, (*s).b = i, (*s).c = i;
    //  s->a = i, s->b = i, s->c = i;
 
    delete s;
    return 0;
}
Yandex
Объявления
02.03.2011, 19:30     Теория
Ответ Создать тему
Опции темы

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