class A { public: int a = 1; }; class B : public A { public: int b = 2; }; B* bi = new B; A* ai = (A*)bi; delete ai;
请问这样处理会不会有内存未释放的问题
不会,你在类内没有任何申请堆内存的地方, delete本质还是编译器生成的operator delete,如果你在子类里面有new 的操作,并且没有虚析构函数,才会造成内存泄露