2012-05-07 8 views

Respuesta

18

En la cabecera cambiar la declaración de:

public ref class Test 
{ 
public: 
    property int MyProperty 
    { 
     int get(); 
     void set(int); 
    } 
private: 
    int m_myProperty; 
}; 

Luego, en el archivo de código cpp escriba sus definiciones de esta manera:

int Test::MyProperty::get() 
{ 
    return m_myProperty; 
} 
void Test::MyProperty::set(int i) 
{ 
    m_myProperty = i; 
} 

La razón por la que está viendo errores es que ha declarado una propiedad trivial donde el compilador genera una implementación para usted. Pero, luego, trataste de proporcionar una implementación explícitamente también. Ver: http://msdn.microsoft.com/en-us/library/windows/apps/hh755807(v=vs.110).aspx

La mayoría de los ejemplos en línea solo muestran implementaciones directamente en la definición de clase.

4

En la definición de clase, debe declarar la propiedad como propiedad con los métodos get y set declarados por el usuario; no puede ser una propiedad resumida:

public ref class Test 
{ 
public: 

    property int MyProperty { int get(); void set(int); } 
}; 

A continuación, en el archivo CPP se pueden definir los métodos get() y set():

int Test::MyProperty::get() 
{ 
    return 42; 
} 

void Test::MyProperty::set(int) 
{ 
    // set the value 
} 
Cuestiones relacionadas