1. 程式人生 > >解構函式可以呼叫純虛擬函式嗎?

解構函式可以呼叫純虛擬函式嗎?

1.子類解構函式可以呼叫純虛擬函式.正常實現多型.
2.基類不可以呼叫純虛擬函式,編譯出錯

#include <iostream>
class A
{
public:
	A(){
		std::cout << "A" << std::endl;
	}
	~A() {
		AA();
		std::cout << "~A" << std::endl;
	}
	virtual void AA() = 0;
};

class B :public A
{
public:

	B(){
		std::cout << "B" << std::endl;
	}
	~B(){
		std::cout << "~B" << std::endl;
	}
	
	void AA ()
	{
		std::cout << "B --AA" << std::endl;
	}

};

int main(int argv ,char *argc[])
{
	B b;
	return 0;
}

在這裡插入圖片描述