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

2 вопроса - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 10:55     2 вопроса #1
Всем привет!

У меня 2 глупых вопроса

1. Допустим, такой код
C++
1
2
3
int value() const {
    return m_nValue;
}
В чём смысл const?

2. В чём разница между
C++
1
Pointer* p
и
C++
1
Pointer *p
?
То есть, где ставить * ?

Буду благодарен за любые ответы
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2011, 10:55     2 вопроса
Посмотрите здесь:

Решение шахматного вопроса C++
Два вопроса C++
3 мелких вопроса C++
C++ 3 Теоретических Вопроса
C++ знак вопроса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LosAngeles
Заблокирован
30.08.2011, 10:58     2 вопроса #2
1) значит что функция-член не изменяет инкапсулированных данных. Геттеры обычно константные
2) в данном случае различий нет
3) первый нах
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
30.08.2011, 10:59     2 вопроса #3
Цитата Сообщение от Lindemann66 Посмотреть сообщение
2. В чём разница между
Код C++
1
Pointer* p
и
Код C++
1
Pointer *p
?
То есть, где ставить * ?
никакой разницы. кто как пишет а ссуть не меняется. это указатель.
Я ближе к типу ставлю - уж так написано было в книге которую читал первой
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
30.08.2011, 10:59     2 вопроса #4
2. если Pointer* p,q; то обе переменные указатели.
если Pointer *p,q; то только p указатель.
Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 11:00  [ТС]     2 вопроса #5
Цитата Сообщение от LosAngeles Посмотреть сообщение
2) в данном случае различий нет
А если вот так
C++
1
Pointer* a, b
и
C++
1
Pointer *a, b
?
AzaKendler
30.08.2011, 11:01
  #6

Не по теме:

передумал...

Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 11:01  [ТС]     2 вопроса #7
Цитата Сообщение от Aneron Посмотреть сообщение
если Pointer *p,q; то только p указатель.
Ага, спасибо
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
30.08.2011, 11:03     2 вопроса #8
хз точно =)))
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.08.2011, 11:07     2 вопроса #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Aneron Посмотреть сообщение
2. если Pointer* p,q; то обе переменные указатели.
если Pointer *p,q; то только p указатель.
Ерунда. В обоих случая только p - указатель.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
30.08.2011, 11:14     2 вопроса #10
1. http://www.cyberforum.ru/cpp-beginne...ml#post1898470
2. Нет никакой разницы. Это вопрос стиля. Главное придерживаться какой-то одной формы записи, и не писать в одном месте так, а в другом иначе )
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
30.08.2011, 11:20     2 вопроса #11
silent_1991, а вторая переменная? просто объект?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.08.2011, 11:21     2 вопроса #12
AzaKendler, да.
Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 11:26  [ТС]     2 вопроса #13
В-общем, методом примера было узнано (простите за корявый язык)) что на самом деле разницы между int *a, b и int* a, b НЕТ НИКАКОЙ
Имеется в виду в Qt
Может быть, в Visual C++ разница и есть
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.08.2011, 11:27     2 вопроса #14
Lindemann66, Qt - фрэймворк, использующий в качестве базы язык C++. По стандарту C++ разницы между записями никакой, звёздочка относится только к переменной, около которой стоит (через пробел, табуляцию, перевод строки - не важно).
Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 11:28  [ТС]     2 вопроса #15
Ну вот, теперь понятно
Просто мне все говорили разные варианты
А проверить что-то никто не удосужился)
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
30.08.2011, 11:37     2 вопроса #16
Лично для меня запись
C++
1
int *p, n;
лучше, чем
C++
1
int* p, n;
А то, действительно, неопытного программиста такая запись может ввести в заблуждение, что указателями являются обе переменные.
Lindemann66
 Аватар для Lindemann66
3 / 3 / 0
Регистрация: 28.04.2010
Сообщений: 162
30.08.2011, 11:44  [ТС]     2 вопроса #17
Вот вот)
Alexiski
Любитель давать советы
 Аватар для Alexiski
338 / 130 / 2
Регистрация: 12.01.2009
Сообщений: 511
30.08.2011, 12:00     2 вопроса #18
И почему-то никто не написал, что пробелы в данном случае вообще опциональны.
Ничто, кроме эстетического чувства, не мешает написать
C++
1
int*p;
Приемлемы также
C++
1
int * p;
и даже
C++
1
2
3
int
*
p;
Правила выделения лексем - те же, что и в выражениях. Там ведь не возникает вопроса, обрамлять ли звёздочку пробелами, и если да, то с какой стороны.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
30.08.2011, 12:01     2 вопроса #19
Цитата Сообщение от iama Посмотреть сообщение
А то действительно, неопытного программиста такая запись может ввести в заблуждение, что указателями являются обе переменные.
Как тут со звёздочкой не играй, а объявлять перменные подобным образом это плохой стиль программирования.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2011, 12:03     2 вопроса
Еще ссылки по теме:

Два вопроса C++
2 Вопроса C++
C++ Не понимаю вопроса

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.08.2011, 12:03     2 вопроса #20
Цитата Сообщение от Alexiski Посмотреть сообщение
И почему-то никто не написал, что пробелы в данном случае вообще опциональны
Написали:
Цитата Сообщение от silent_1991 Посмотреть сообщение
разницы между записями никакой, звёздочка относится только к переменной, около которой стоит (через пробел, табуляцию, перевод строки - не важно)
Добавлено через 58 секунд
Цитата Сообщение от rangerx Посмотреть сообщение
объявлять перменные подобным образом это плохой стиль программирования
Что вы имеете ввиду?
Yandex
Объявления
30.08.2011, 12:03     2 вопроса
Ответ Создать тему
Опции темы

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