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.
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.
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.
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.
To co zwraca operator "-" musi przyjmowac operator "<".
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
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.