1).Porównuję dwie struktury.
2).Mnożę wszystkie składowe double w strukturze przez nową liczbę double.
3).Dodaję do składowych double w strukturze nową liczbę double.
4).Porównuję jedną składową double w strukturze z drugą w innym obiekcie.
5).Wyświetlam ile razy struktura była wywoływana.
Męczę się trochę z tym.
Czy takie cós może być.
Masakra ,co nie !
Kod: Zaznacz cały
#include<iostream>
struct STRUKTURA
{
STRUKTURA(double K,double L);
~STRUKTURA()
{ }
double DBL;
double DBL1;
friend STRUKTURA operator+(double DBL0,const STRUKTURA& STA);
STRUKTURA operator*(double DOUB);
STRUKTURA STR(STRUKTURA& STR1);
};
STRUKTURA:: STRUKTURA(double K,double L)
{
using std::cout;
static int Policz;
cout<<"STRUKTURA UZYTA :"<< ++Policz<<" RAZY\n";
DBL = K;
DBL1 = L;
}
//-----------------------------------------------------------------------
STRUKTURA STRUKTURA::STR(STRUKTURA& STR1)//porównywanie jednej zmiennej
{
return STR1.DBL>= DBL ? STR1 : *this;//jeżeli zmienna DBL w strukturze STR1 >=
//od zmiennej DBL w strukturze STR to zwróć strukturę STR1
//inaczej zwróć strukturę STR
}
//-----------------------------------------------------------------------
STRUKTURA STRUKTURA::operator*(double DOUB)//mnożenie
{
STRUKTURA XXL(1.00,2.00);
XXL.DBL = DBL * DOUB;
XXL.DBL1 = DBL1 * DOUB;
return XXL;
}
//-----------------------------------------------------------------------
bool operator==(STRUKTURA& ST,STRUKTURA& ST2)//porównywanie
{
bool T = (ST.DBL1 == ST2.DBL1 && ST.DBL == ST2.DBL);
return (T);
}
//-------------------------------------------------------------------------
STRUKTURA operator+(double DBL0,STRUKTURA& STA)//dodawanie(friend-owa funkcja)
{
STA.DBL1 = DBL0+ STA.DBL1;
return STA;
}
//------------------------------------------------------------------------
int main()
{
using std::cout;
using std::cin;
STRUKTURA S(1.00,2.00);
STRUKTURA S2(1.00,2.00);
if(S == S2)cout<<"OK!\n";
S = S2.operator *(1.00);
cout<<S.DBL<<" "<<S.DBL1<<"\n";
S = 1.00 + S2;
cout<<S.DBL<<" "<<S.DBL1<<"\n";
STRUKTURA WYNIK1(0.00,0.00);
STRUKTURA WYNIK2(31.00,5.00);
STRUKTURA WYNIK3(3.00,5.00);
WYNIK1 = WYNIK2.STR(WYNIK3);//pierwsza zmienna ze struktury WYNIK2 jest większa niż
//pierwsza zmienna w strukturze WYNIK3
cout<<WYNIK1.DBL<<" "<<WYNIK1.DBL1<<"\n";//wyświetli 31.00 5.00
cin.get();
return 0;
}struktury(chyba,bo policzyło 6 razy).