Below code is dealing with a TYPE* const
pointer.
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();
}
My questions are,
- If you initialize with
0
, then even though typecasting next time will not work. Is doing such typecasting is undefined behavior ? this
pointer is also ofTYPE* const
type, then why compiler doesn't allow the same operation forthis
?