用一个父类指针指向一个子类对象,再用一个子类指针=这个父类指针,安全吗?
比如:
class A { ......... }
class B :public A { public: int data; }
A* ptr=new B;
//....干了一些别的事........
B* ptr2=(B*)ptr;
ptr2->data=10;
这样做安全吗? 我保证ptr在"干了一些别的事"的那段代码中不会指向其他位置,那么这样做安全吗?
标准中有相关规定吗?
另外,麻烦就不要说"这样做没意义"了,我就想知道这样安不安全,标准中
有没有类似保证.有没有意义不在讨论范围内.谢谢!