类的析构
C++:为什么在继承关系中,父类的析构函数最好定义为虚函数?
C++:为什么在继承关系中,⽗类的析构函数最好定义为虚函数?我们先来看⼀段简单代码,A类有⼀个指针成员_pa,B类公有继承了A类,然后⾃⼰有⼀个指针成员_pb:如果不把⽗类的析构函数定义为虚函数,会有什么问题?pa是A类的指针,它指向了新创建的B类对象,在析构时,理应调⽤B类的析构函数,然后执⾏结果是调⽤了A类的析构函数:原因就是,没有构成多态,与类型有关,因为pa是⽗类的指针,就⼀定调⽤的是⽗类...
C++:为什么在继承关系中,⽗类的析构函数最好定义为虚函数?我们先来看⼀段简单代码,A类有⼀个指针成员_pa,B类公有继承了A类,然后⾃⼰有⼀个指针成员_pb:如果不把⽗类的析构函数定义为虚函数,会有什么问题?pa是A类的指针,它指向了新创建的B类对象,在析构时,理应调⽤B类的析构函数,然后执⾏结果是调⽤了A类的析构函数:原因就是,没有构成多态,与类型有关,因为pa是⽗类的指针,就⼀定调⽤的是⽗类...