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.
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.