Cześć. Dopiero uczę się C++, więc proszę o wyrozumiałość. Pewnie mój problem jest banalny. Nie potrafię tego wytłumaczyć inaczej niż w tytule - chciałbym podwójnie użyć własnego operatora. Oto przykład - stworzyłem pewną klasę i operator '<<<' :
#include <iostream>
using namespace std;
class Stack
{
int n, max;
float *tab;
public:
Stack(int maximum=100)
{
max=maximum;
}
Stack(float a[], int size)
{
tab = new float [size];
for(int i=0; i<size; i++)
{
tab[i]=a[i];
}
n=size;
max=size;
}
Stack(float a[], int size, int maximum)
{
tab = new float [maximum];
for(int i=0; i<size; i++)
{
tab[i]=a[i];
}
n=size;
max=maximum;
}
void wypisz()
{
for(int i=0; i<n; i++)
{
cout << "Nr : " << i << " = " << tab[i] << '.' << endl;
}
cout << "Max: " << max << endl;
}
void operator << (float liczba)
{
if(n==max)
{
cout << "Nie mozna dodac liczby. Osiagnieto maksymalny rozmiar stosu." << endl;
}
else
{
tab[n]=liczba;
n++;
}
}
};
A w funkcji main:
int main()
{
float a[10]={5.5, 4.4, 3.3, 2.2, 1.1};
int size = 5;
int maximum=10;
Stack stos(a, size, maximum);
// stos<<6.6;
stos<<6.6<<7.7;
stos.wypisz();
return 0;
}
chciałbym móc użyć nieskomentowanego zapisu, czyli: stos<<6.6<<7.7. Dla pojedynczego: <<6.6 działa bez problemu. Bardzo prosiłbym o pomoc. :-)