Simple member-funktionsdefinition.



  • Ich hab das gefühl ich bin blöd. (Sample wird später mal ne Klasse ist im moment ein typedef auf float).

    // oscilator.hpp
    #ifndef OSCILATOR_HPP
    #define OSCILATOR_HPP
    
    typedef float Sample;
    class Oscilator {
    public:
        typedef Sample Oscilator::*Member(Sample);
    public:
        Oscilator()
        {
        }
    
    public:
        void add_mod_target(Member member);
    
    private:
        float m_frequency;
        Sample m_knoten[32];
    };
    
    #endif
    
    // oscilator.cpp
    
    #include "oscilator.hpp"
    
    void Oscilator::add_mod_target(Member member)
    {
    }
    

    Wieso zum teufel kommt dann ein

    error C2511: 'add_mod_target' : overloaded member function 'void (float Oscilator::*(__cdecl *)(float))' not found in 'Oscilator'
    

    Was soll das.



  • Der Quelltext ist zwar AFAICS korrekt, allerdings weiß ich nicht, ob Du einen Zeiger auf eine Memberfunktion erstellen wolltest (dann fehlen zwei Klammern) oder einen Zeiger auf ein Datenelement wirren Typs aus dem Oscilator, den man übrigens in Wirklichkeit Oscillator schreibt.



  • Ist nicht von mir, sondern von nem Freund. Der hat mich gefragt und ich hatte keine Ahnung, was falsch ist. Sollten aber Methodenzeiger sein.


Anmelden zum Antworten