Atrybut klasy jako "jej wartość"

0

Mam jakiś tam obiekt wartosc.
Powiedzmy jednym z jej atrybutow bedzie int liczba.

Chcialbym aby przy każdej operacji obiektem automatycznie operowano na jej atrybucie.

np. zeby zamiast
cout << wartosc.liczba; bądź wartosc1.liczba + wartosc2.liczba
mozna bylo zrobic po prostu
cout << wartosc ; bądź wartosc1 + wartosc2

Przeciez nie bede chyba przeciazal wszystkich mozliwych operatorow?

0

Wy<ort>kozystaj</ort> przeciazenie operatorów

0

tak... stworze sobie np klase*
class liczby
{
int liczba;
void wyswietl();
}

i teraz mam przeciazac wszystkie operatory by na tym pracowac? Troche bez sensu.

*oczywiscie przyklad sprowadzony do banalu.

0

Cóż jak by sie uprzeć to możesz zrobić to za pomocą define np takie coś:
#include <iostream.h>

struct klasa
{
int liczba;
};

#define bb b.liczba // O TO WŁAŚNIE CHODZI

int main()
{
klasa b;
b.liczba = 5;
cout << bb;
return 0;
}

0

albo chodzi o
operator int()
operator char*()
...

0

w sumie jak sie dowiesz jak to sie robi to jest latwo.

A wiec przeciazony operator to specjanije nazwana funkcja ktora jest odpalana kiedy wpiszesz w kodzie operator( wiem bardzo to uproscilem )

w ten sosob musisz w klasie stworzyc cos takiego:

int operatot+ (liczby InnaLiczba)
{
//srodek jest dowaolny w twoim przypadku moze wygladac tak
retrurn (liczba + InnaLiczba.liczba);
}

a jesli chodzi o wyswietlanie to musisz przeladowac operator<< i jako wartosc zwracana zwrocic ostream& .Z tym ze nie jestem wpewien jak to sie robilo wiec tutaj ci nie pomoge.

Jak czegos nie zrozumiales to pytaj.

Assassin.

0

dzieki flabra, to jest dokladnie to o co mi chodzilo :)

Pol dnia tego wszedzie szukalem i nigdzie nic o tym nie bylo.

Wielkie dzieki [browar]

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