Articles of sobrecarga del operador

¿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 […]

¿Cómo puedo obtener de manera confiable la dirección de un objeto cuando el operador está sobrecargado?

Considere el siguiente progtwig: struct ghost { // ghosts like to pretend that they don’t exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that’s not clyde’s address :'( } ¿Cómo obtengo la dirección de clyde ? Estoy buscando una solución que funcione […]

C # Operadores generics

Estoy tratando de implementar un operador genérico como ese: class Foo { public static T operator +(T a, T b) { // Do something with a and b that makes sense for operator + here } } Realmente lo que estoy tratando de hacer es manejar con gracia la herencia. Con un operador estándar + […]

Cómo sobrecargar el operador ++ de dos maneras diferentes para postfix a ++ y prefijo ++ a?

Cómo sobrecargar el operador ++ de dos maneras diferentes para postfix a++ y prefijo ++a ?

Sobrecarga del operador en C

Estoy intentando sobrecargar algunos operadores: /* Typedef is required for operators */ typedef int Colour; /* Operators */ Colour operator+(Colour colour1, Colour colour2); Colour operator-(Colour colour1, Colour colour2); Colour operator*(Colour colour1, Colour colour2); Colour operator/(Colour colour1, Colour colour2); Me sale este error por cada sobrecarga probada: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘+’ […]

Operador de asignación de sobrecarga en C #

Sé que el operador = no puede estar sobrecargado, pero debe haber una manera de hacer lo que quiero aquí: Solo estoy creando clases para representar unidades cuantitativas, ya que estoy haciendo un poco de física. Aparentemente no puedo heredar de una primitiva, pero quiero que mis clases se comporten exactamente como primitivas; solo quiero […]

¿Cuál es la forma correcta de sobrecargar al operador == para una jerarquía de clases?

Supongamos que tengo la siguiente jerarquía de clases: class A { int foo; virtual ~A() = 0; }; A::~A() {} class B : public A { int bar; }; class C : public A { int baz; }; ¿Cuál es la forma correcta de sobrecargar al operator== para estas clases? Si hago todas las funciones […]