Присвоение значения члену класса ConstC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Присвоение значения члену класса Const

Сообщение Anonymous »

В приведенном ниже коде?

Код: Выделить всё

#include 

int* p_n;

class A
{
public:

A(int val) : n(val)
{
// At this point the compiler does not know if the object is const or not.
p_n = &n;
}

int n;
};

int main()
{
// A::n is const, because A is const, right?
const A a(1);

// but we change a const value here
*p_n = 2;

std::cout  < /p>
Отсюда: < /p>
< Blockquote>
const и летучая семантика (7.1.6.1) не применяются на строящемся объекте. Они вступают в силу, когда конструктор для наиболее полученного объекта (1.8) заканчивается. 

В то время как объект A 
находится в стадии строительства, он не является const и a.n не является const , но они становятся const , когда конструктор заканчивается.
Итак, p_n укажите на объект const или нет?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ass-member
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»