Ниже код имеет дело с указателем TYPE* const
.
struct D {
void Check ()
{
D* const p = new D; // 2nd test is "p = 0;"
cout<<"p = "<<p<<endl;
(D*&)p = new D;
cout<<"p = "<<p<<endl; // prints 0, "p = 0;" at declaration
}
};
int main ()
{
D o;
o.Check();
}
Мои вопросы,
- Если инициализировать с
0
, то хоть приведение типов в следующий раз не сработает. Является ли такое приведение типов неопределенным поведением? - Указатель
this
тоже типаTYPE* const
, тогда почему компилятор не разрешает ту же операцию дляthis
?