Wie lautet die Syntax zum Deklarieren einer C ++ / CX WinRT-Eigenschaft mit Implementierung in der CPP-Datei?

8

Ich habe eine Klasse wie folgt:

%Vor%

Das funktioniert. Jetzt möchte ich die Implementierung von MyProperty in die CPP-Datei verschieben. Ich bekomme Compilerfehler, dass die Eigenschaft bereits definiert ist, wenn ich dies tue:

%Vor%

Was ist die richtige Syntax dafür?

    
Skrymsli 07.05.2012, 16:28
quelle

2 Antworten

18

Ändern Sie im Header die Deklaration zu:

%Vor%

Dann schreiben Sie in der cpp-Code-Datei Ihre Definitionen wie folgt:

%Vor%

Der Grund für die Anzeige von Fehlern ist, dass Sie eine triviale Eigenschaft deklariert haben, in der der Compiler eine Implementierung für Sie generiert. Aber dann haben Sie versucht, eine Implementierung explizit bereitzustellen. Siehe: Ссылка

Die meisten Online-Beispiele zeigen Implementierungen direkt in der Klassendefinition.

    
petrsnd 07.05.2012, 16:36
quelle
4

In der Klassendefinition müssen Sie die Eigenschaft als eine Eigenschaft deklarieren, die vom Benutzer deklariert wird: get und set Methoden; es kann keine Kurzschrifteigenschaft sein:

%Vor%

Dann können Sie in der cpp-Datei die Methoden get() und set() definieren:

%Vor%     
James McNellis 07.05.2012 16:33
quelle