2016-07-02 16 views
-1

Ich habe Struktur, die in Header-Datei deklariert, konnte aber keinen Zugriff auf sie Mitglied ist von der Umsetzung .cc Datei:Wie auf Strukturelement zugreifen?

--- Header-Datei ---

struct MyFilter : public RTBKIT::FilterBaseT<AgeFilter> 
{ 
static constexpr const char* name = "Age"; 
unsigned priority() const { return 10; }//Priority::Age; } 

void filter(FilterState& state) const; 
private: 
     IntervalFilter<int> f; 
} 
---cc file --- 
void MyFilter::filter(FilterState& state) { 
    state.narrowConfigs(f.filter(...); 
} 

Dort heißt es: Fehler: f wurde in diesem Umfang nicht deklariert.

Danke, Ann

+1

Soll Filter Mitgliedfunktion sein? Im Moment scheint es, als wäre es eine freie Funktion. Meintest du nicht "MyFilter :: filter"? –

+0

Ist das ein Versuch für eine rekursive Funktion? –

+0

Nop, es ist MyFilter :: Filter, aber Compiler beschwert sich die Variable f, die ich in die Header-Datei einfügt. –

Antwort

0

Sie müssen f zusammen mit state passieren, um für sie lokal in Ihrem filter() oder schreiben Sie es wie folgt verwendet werden:

für void YourClass::YourFunction() { .. }

+0

Zustand wurde verwendet, um Informationen von ihm zu erhalten, aber f war privat im Header, ich zog es aus, um zu kompilieren. @FirstStep –

+0

@AnnW. Wir haben Probleme, dich zu verstehen. Könnten Sie bitte erweitern, was Sie meinen? –

+0

Ja, wie man die Variable f benutzt - setze das private Mitglied f in die Datei der Implementierungsklasse (.cc). @FirstStep –

-1

Dank alle Hinweise, ich habe tatsächlich Präfix vor der Funktion vergessen und const nach.

Ann

Verwandte Themen