Tworzenie/przeciążanie nietypowych operatorów?

0

Czy w C++ można stworzyć własny operator, mam dokładniej na myśli taki o to operator <-? Załóżmy, że w kodzie chcę móc używać takiego zapisu:

x <- 4;

który przykładowo spowoduje, że zmiennej obiektu x zostanie nadana wartość 4.

1

nie można tworzyć własnych operatorów, ale to co pokazałeś to znak mniejszości i unarny minus:

x < -4

można by coś próbować wykombinować z tych dwóch.

0

Tzn. przeciążyć jeden operator, następnie drugi, gdzie jeden z nich będzie przyjmował jako argument pozostały operator? Jeśli tak, to jak zrobić by operator był argumentem, kombinuje jak to wykonać, ale mi nie wychodzi.

0

To co zwraca operator "-" musi przyjmowac operator "<".

0

załóżmy ,że udało by się tobie przeciążyć ten operator(co jest niemożliwe) to by przy takiej linijce: x <- 4;
wystąpiła dwuznaczność. Sam język programowania do tego nie dopuści

1

Nie piszę na co dzień w C++, lecz wykombinowałem takie coś:

#include <iostream>
using namespace std;
 
class Value
{
  public:
    int value;
    
    Value()
    {
     value = 0;
    }

    Value(int x)
    {
     value = x;
    }
};
 
Value operator - (Value x)
{
 return x;
}
 
void operator < (int& var, Value val)
{
 var = val.value;
}
 
int main()
{
 int x, y;
 
 x = 10;
 y = 20;
 cout << x << "," << y << endl;
 
 x <- Value(1024);
 y <- Value(512);
 cout << x << "," << y << endl;

 x <- Value(y);
 cout << x << "," << y << endl;
}

:>

Innego rozwiązania (tj.bez używania klasy/struktury bądź korzystania z compiler-magic) raczej nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1