Задать вопрос
@BiFive

Где место звездочки?

Заинтересовал меня один вопрос. Где лучше ставить * при объявлении указателя на объект: у имени класса или у имени переменной?

Вопрос чисто «философский». Самый очевидный ответ — кому как удобней. Поспрашивал у коллег выяснилось, что я один ставлю * у имени класса.

Решил разобраться в этом вопросе. Обратился к первоисточнику (Бьерн Страуструп. Язык программирования С++).

char * p; // указатель на символ


То есть вообще третий вариант.


Так же решил глянуть в стандарт. Про указатели конкретно не нашел, только кусок кода где они объявляются:

Tmp* p = new Tmp(a[i]*b[i]);


Прежде чем спросить ваше мнение, выскажу свои соображения и размышления. Всё, что будет написано дальше это только моё мнение.

Первый вариант Type* obj


Я сам использую этот вариант, но начал я его использовать еще до того как задумался о смысле расположения *. В данном случае переменная рассматривается как переменная типа «указатель на объект типа Type». Следовательно указатель это отдельный тип.

Второй вариант Type *obj


Ну тут все просто, это просто указатель, то есть число с адресом, где можно найти объект типа Type.


Собственно сам вопрос: Как вы объявляете указатели и есть ли в этом смысловая нагрузка или же это просто дело привычки?
  • Вопрос задан
  • 2617 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя wholeman К ответам на вопрос (6)
wholeman
@wholeman
Первый вариант: для меня звёздочка — часть названия типа.
Ответ написан
Комментировать