Уместно ли объявлять нестатический константный член данных внутри класса при кодировании? - PullRequest
0 голосов
/ 29 июля 2011

элемент данных внутри класса может быть константным, но только если он статический. в противном случае нам нужен конструктор для инициализации константы внутри класса.

can we declare a const data member inside a class? //this was an interview question

Мне кажется, что мы можем, но уместно ли программисту объявлять константу внутри класса.

Пожалуйста, объясните / объясните, почему мы можем или не можем сделать?

Ответы [ 3 ]

1 голос
/ 29 июля 2011

Краткий ответ: внутри класса может быть нестатический член const.

Поскольку вам все еще нужно присвоить ему значение, единственное место, где вам разрешено, находится в инициализацииlist.

И, ну, это всегда хорошая причина, если ваш член действительно постоянен.Я имею в виду, что const -корректность - это, в основном, дополнительный инструмент, помогающий улучшить кодирование, поэтому используйте его, если хотите, и вы поблагодарите себя позже.И если вы не используете его ... ну, это не имеет значения!

1 голос
/ 29 июля 2011

уверен, что если у вас есть некоторые константы, которые вы хотите использовать в своем классе, и принадлежите к классу.

Например, предположим, что у вас есть некоторый тип данных с уникальным идентификатором, идентификатор идентифицирует объектпоэтому никогда не изменится:

class myData {
   cont int ID;
   myData(int newID) : ID(newID) {}
}
1 голос
/ 29 июля 2011

Конечно, вы можете:

struct A
{
    A() : a(5)
    {
    }
    const int a;
};

int main()
{
   A a;
}

Это означает, что элемент данных a внутри структуры A не изменится.

...