pasar online lenguaje guille convertir convertidor convert codigo c# c++ visual-studio-2010 visual-c++

online - Posible convertir C#obtener, establecer código a C++



de c# a java (3)

¿Está utilizando C ++ / CLI? Si es así esta es la sintaxis de la propiedad.

public: property std::string Temp { std::string get() { return sTemp; } void set(std::string value) { sTemp = value; this->ComputeTemp(); } }

Si estás tratando de usar C ++ normal, estás fuera de suerte. No hay una característica equivalente para el código normal de C ++. Tendrá que recurrir a los métodos de getter y setter.

public: std::string GetTemp() const { return sTemp; } void SetTemp(const std::string& value) { sTemp = value; this->ComputeTemp(); }

Tengo el siguiente código en C #:

public string Temp { get { return sTemp; } set { sTemp = value; this.ComputeTemp(); } }

¿Es posible convertir esto y usar get y set de esta manera? Sé que no puedes declarar así y necesito el ":" para declarar, pero cuando intento hacer esto:

public: std::string Temp { get { return sTemp; } set { sTemp = value; this.ComputeTemp(); }

El error que recibí está en el primer "{" que indica expected a '';'' . ¿Alguna sugerencia sobre cómo solucionarlo?


En Visual C ++ puedes usar __declspec(property) , así:

public: __declspec(property(get=get_Temp, put=set_Temp)) std::string Temp; const std::string& get_Temp { return sTemp; } void set_Temp(std::string value) { sTemp = std::move(value); this->ComputeTemp(); }


Para copiar pegar una de mis respuestas de una pregunta similar:

ADVERTENCIA: ¡Esta es una respuesta irónica y es terrible!

Sí, es algo posible :)

template<typename T> class Property { private: T& _value; public: Property(T& value) : _value(value) { } // eo ctor Property<T>& operator = (const T& val) { _value = val; return(*this); }; // eo - operator const T&() const { return(_value); }; // eo () };

Luego declara tu clase, declarando propiedades para tus miembros:

class Test { private: std::string m_Test; public: Test() : text(m_Test) { }; Property<std::string> text; };

¡Y llame al estilo C #!

Test a; a.text = "blah"; std::string content = a.text;