Articles of sovraccarico dell’operatore

Perché l’object istream può essere usato come espressione bool?

Qualcuno sa perché l’object istream può essere usato come espressione bool? Per esempio: ifstream input(“tmp”); int iValue; while (input >> iValue) //do something; Qui input >> iValue restituisce un riferimento all’object ifstream. Voglio sapere perché questo object può essere usato come espressione bool. Guardo nella class ifstream e scopro che ciò potrebbe essere dovuto alla […]

Sovraccarico dell’operatore in C

Sto cercando di sovraccaricare alcuni operatori: /* 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); Ottengo questo errore per ogni sovraccarico provato: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘+’ […]

Perché sostituire l’operatore ()?

Nella libreria Boost Signals , stanno sovraccaricando l’operatore (). È una convenzione in C ++? Per richiamate, ecc.? Ho visto questo nel codice di un collega (che sembra essere un grande fan di Boost). Di tutta la bontà della bontà, questo ha portato solo a confusione per me. Qualche idea sul motivo di questo sovraccarico?

Perché non riesci a sovraccaricare il ‘.’ operatore in C ++?

Sarebbe molto utile essere in grado di sovraccaricare il. operatore in C ++ e restituisce un riferimento a un object. È ansible sovraccaricare l’ operator-> e l’ operator* ma non l’ operator. C’è una ragione tecnica per questo?

Qual è il modo giusto per sovraccaricare l’operatore == per una gerarchia di classi?

Supponiamo che abbia la seguente gerarchia di classi: class A { int foo; virtual ~A() = 0; }; A::~A() {} class B : public A { int bar; }; class C : public A { int baz; }; Qual è il modo giusto per sovraccaricare l’ operator== per queste classi? Se faccio loro tutte le […]

Come codificare un operatore di modulo (%) in C / C ++ / Obj-C che gestisce numeri negativi

Uno dei miei animali odia le lingue derivate dalla C (come matematico) (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Qual è la soluzione migliore? Il C ++ consente la possibilità di modelli e sovraccarico dell’operatore, ma entrambi sono acque torbide per me. esempi ricevuti con gratitudine.

operatore di assegnazione virtuale C ++

L’operatore di assegnazione in C ++ può essere reso virtuale. Perché è richiesto? Possiamo rendere virtuali anche altri operatori?

Sovraccarico di operatori di accesso membri ->,. * (C ++)

Comprendo la maggior parte dell’overloading dell’operatore, ad eccezione degli operatori di accesso membri -> .* , ->* ecc. In particolare, cosa viene passato a queste funzioni dell’operatore e cosa deve essere restituito? Come funziona l’operatore (ad es. operator->(…) ) sapere a quale membro viene fatto riferimento? Può sapere? Ha bisogno di sapere? Infine, ci sono […]

Soluzione per il sovraccarico del vincolo dell’operatore in generici .NET

Cosa farei se volessi avere un metodo generico che accetta solo tipi che hanno sovraccaricato un operatore, ad esempio l’operatore di sottrazione. Ho provato a usare un’interfaccia come un vincolo ma le interfacce non possono avere un sovraccarico dell’operatore. Qual è il modo migliore per raggiungere questo objective?

L’operatore deve essere implementato come amico o come membro?

Questa è fondamentalmente la domanda, c‘è un modo “giusto” per implementare l’ operator<< ? Leggendo questo posso vedere che qualcosa di simile: friend bool operator<<(obj const& lhs, obj const& rhs); è preferito a qualcosa di simile ostream& operator<<(obj const& rhs); Ma non riesco a capire perché dovrei usare l’uno o l’altro. Il mio caso personale […]