Prerusenie v C++

Ahojte, robim program v C++ konkretne do atmegy8, narazil som na problem ako pouzit metodu s triedy v preruseni. Na internete som nasiel co som potreboval prisposobil som si to mojim potrebam cize presne to potrebujem. Zial nie velmi rozumiem niektorym veciam, vedel by mi niekto v skratke popisat co a ako. Snazil som sa najst vysvetlenie aj roznych priruckach ale nejak sa mi nedari. Schvalne tu davam len cast kodu ktorej nie velmi rozumiem aby to bolo viac prehladne
Dakujem

class Init_Button {
	public:	
	static Init_Button * pButton_Class; // vytvorenie pointra na objekt?
	Init_Button(volatile uint8_t port);  //vytvorenie konstruktora
	inline void handle_interruptTIMER0(void);
	
	}
	
	Init_Button::Init_Button(volatile uint8_t port) {
	.
    .
	pButton_Class = this; //inicializacia pButton_Class?
							
		}
		
	
Init_Button* Init_Button::pButton_Class;  //tejto casti nerozumiem

	inline void Init_Button::handle_interruptTIMER0()
	{
		..do something..
	}
	
	ISR(TIMER0_OVF_vect)
	{
		Init_Button:: pButton_Class->handle_interruptTIMER0();  //(*pButton_Class).handle_interruptTIMER0(); to iste
		
	}```