2011-12-29 2 views
0

J'utilise C++/CLI, en essayant de déclarer les prototypes d'une classe dans un fichier d'en-tête, puis de les implémenter dans un fichier cpp.Déclarez les propriétés, puis définissez plus tard?

En général cpp cela semble assez commun, mais cela ne semble pas fonctionner avec la syntaxe C++/CLI, qu'est-ce qui me manque?

#using <mscorlib.dll> 

using namespace System; 

public ref class AClass { 

    public: 

     static Boolean GetSomething(); // Compiler is fine with this 
     static property Boolean Something { Boolean get(); } // Compiler doesn't complain about this 

}; 

// Compiler is not cool with this 
property Boolean AClass::Something { 

    Boolean get() { return true; } 

} 

// Compiler is fine with this 
Boolean AClass::GetSomething() { 

    return true; 

} 

J'ai essayé diverses permutations de la syntaxe, et rien ne semble fonctionner, la recherche ne semble pas aider non plus (peut-être ce n'est pas largement utilisé plus? Je trouve ça me aide SCISSION et le travail avec de grandes classes plus efficacement ...). Quand je dis que le compilateur est bien avec le prototype de la propriété, je veux dire que si j'essaie de compiler avec l'implémentation en cours (le prototype est toujours présent), le compilateur "réussit" et ensuite a une crise cardiaque pendant la liaison.

Répondre

1

Vous devez définir le getter de propriété comme une définition de fonction normale.

public ref class AClass 
{ 
public: 
    static property Boolean Something { Boolean get(); } 
}; 


Boolean AClass::Something::get() 
{ 
    return true; 
} 
Questions connexes