Varför måste man sätta ut en * för att komma åt själva funktionen i en klass då man använder sig av funktionspekare till en medlemsfunktion. Är det för att det är en metod inne i en klass ???
class Dog
{
public:
int GetAge() {return m_iAge; }
private:
int m_iAge ;
}
int main()
{
void (*pToADrawFunc) (int, int) ; //Funktionspekare
pToADrawFunc = DrawRect ;
pToADrawFunc(10, 20);
int (Dog::\*Func) () ; // Funktionspekare till en medlemsfunktion
Dog Fido ;
Func = Dog::GetAge ;
int age = (Fido.\*Func) () ;
return 0;
Anledningen till att man måste ha en stjärna ( * ) framför är för att kunna skilja på om det finns en funktion i klassen Dog som heter just func. Utelämnar man * så blir det en möjlig namnkonflikt och den undviks genom att man sätter ut *.
268 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25