Articles of sobrecarga del operador

valor de retorno de la sobrecarga del operador en C ++

Tengo una pregunta sobre el valor de retorno de la sobrecarga del operador en C ++. En general, encontré dos casos, uno es retorno por valor, y uno es retorno por referencia. Entonces, ¿cuál es la regla subyacente de eso? Especialmente en el caso en que puede usar el operador continuamente, como cout<<x<<y . Por […]

¿Cómo sobrecargo el operador en C #

Me gustaría agregar un operador a una clase. Actualmente tengo un método GetValue () que me gustaría reemplazar con un operador []. class A { private List values = new List(); public int GetValue(int index) { return values[index]; } }

¿Por qué el “operador void” no se invoca con syntax de molde?

Mientras jugaba con esta respuesta del usuario GMan , diseñé el siguiente fragmento (comstackdo con Visual C ++ 9): class Class { public: operator void() {} }; Class object; static_cast( object ); (void)object; object.operator void(); después de dar un paso con el depurador descubrí que la conversión a void no invoca Class::operator void() , solo […]

C ++: sobrecarga ++ para el incremento previo y posterior

¿Podemos sobrecargar operator++ para preincremento y post incremento? es decir, llamando a los resultados de SampleObject++ y ++SampleObject correctamente. class CSample { public: int m_iValue; // just to directly fetch inside main() CSample() : m_iValue(0) {} CSample(int val) : m_iValue(val) {} // Overloading ++ for Pre-Increment int /*CSample& */ operator++() { // can also adopt […]

¿Cómo sobrecargar el operador unario negativo en C ++?

Estoy implementando clases vectoriales y necesito obtener un opuesto a algún vector. ¿Es posible definir este método utilizando la sobrecarga del operador? Esto es lo que quiero decir: Vector2f vector1 = -vector2; Esto es lo que quiero que este operador logre: Vector2f& oppositeVector(const Vector2f &_vector) { x = -_vector.getX(); y = -_vector.getY(); return *this; } […]

¿Cómo llamo al “operador nuevo” original si lo sobrecargué?

Supongamos que necesito sobrecargar global ::operator new() para almacenar datos adicionales con cada objeto asignado . Entonces, básicamente, funcionaría de esta manera: para cada llamada a global ::operator new() se tomará el tamaño del objeto pasado y se agregará el tamaño de datos adicionales asignará un bloque de memoria de tamaño deducido en el paso […]

¿Cómo evito que se asigne una clase a través del operador ‘nuevo’? (Me gustaría asegurar que mi clase RAII siempre esté asignada en la stack).

Me gustaría asegurar que mi clase RAII siempre esté asignada en la stack. ¿Cómo evito que se asigne una clase a través del operador ‘nuevo’?

¿Qué razones legítimas existen para sobrecargar el operador unario?

De acuerdo, me han inspirado para hacer algunos golpes en la cabeza . Parece una sobrecarga del operator& lleva a una pequeña cantidad de dolor. ¿Qué casos legítimos existen para sobrecargarlo? (No puedo decir que alguna vez lo haya hecho …)

Justificación de obligar a algunos operadores a ser miembros

Hay 4 operadores en C ++ que pueden estar sobrecargados pero no pueden sobrecargarse como funciones independientes (también conocidas como no miembros, independientes). Estos operadores son: operator = operator () operator -> operator [] Este hilo explica perfectamente la razón detrás de prohibir operator = ser una función no miembro. Alguna idea sobre los otros […]

Cuándo sobrecargar el operador de coma?

Veo preguntas sobre SO de vez en cuando sobre la sobrecarga del operador de coma en C ++ (principalmente sin relación con la sobrecarga en sí, pero cosas como la noción de puntos de secuencia), y me hace pensar: ¿Cuándo debes sobrecargar la coma? ¿Cuáles son algunos ejemplos de sus usos prácticos? No puedo pensar […]