TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Potrzebna pomoc z C++ , problem z przeładowaniem operatorów. , Magnus 20/01/04 22:33 Znów mam problem z programikiem.
Żródło leży tu http://www.vwbully.republika.pl/temp/TEMAT7.CPP
Tesć zadania jest następująca:
Zbudować klasę z przeciazonymi operatorami ^= i !
w celu wykorzystania potegowania i oblicznia silni
--nie wiem czy ma być ^= czy samo ^
Programik w zasadzie jest npisany w 90% ale nie moge dojsć do tego jak przekazać pobrane zmienne do operatora np ! (silnia) aby mi to poiliczyl. Ciagle wychodza błędy parse eror a teraz coś pozminieałem i Linker error.
Prosze o pomoc bo pewnie jest to coś banalnego a ja nie umiem sobie z tym poradzić :-(- jakby komuś nie chciało się sciagać źródła , Magnus 20/01/04 22:35
/* Zbudować klasę z przeciazonymi operatorami ^= i !
w celu wykorzystania potegowania i oblicznia silni*/
#include<iostream.h>
#include <math.h>
class liczba
{
public:
double x;
liczba() {x=0;};
liczba (double);
friend liczba operator ! (liczba);
friend liczba operator ^ (liczba,liczba);
void wypisz(void);
};
liczba operator ! (liczba a)
{
double i, wyn=1;
for (i=1; i<=a.x; i++)
{
wyn=wyn*i;
}
//cout<<"Wynik silni: "<<wyn;
return wyn;
}
liczba operator ^ (liczba a, liczba b)
{
double wyn;
// x=a.x;
// y=b.x;
wyn=pow(a.x,b.x);
// cout<<"Wynik potegowania: "<<wyn;
return wyn;
}
void liczba::wypisz(void) /* funkcja wypisywania */
{
cout<<"("<<this->x<<")"<<endl<<endl;
}
main()
{
int f;
liczba a,b;
char wyb;
cout<<"Podaj liczbe\n";
cin>>a.x;
cout<<"Wybierz dzialanie ^ lub !\n";
cin>>wyb;
switch (wyb)
{
case '!':
cout<<"wybr !\n";
break;
case '^':
cout<<"wybr ^\n";
cout<<"podaj wykladnik";
cin>>b.x;
(a^b).wypisz();
break;
default :
cout<<"Koniec programu\n";
break;
}
cin>>f;
return 0;
} - po pierwsze, , Quad 20/01/04 23:00
masz blad w operatorach ! i ^ bo maja zwracac typ liczba a zwracaja wyn ktorey jest typu double. Po drugie jest deklaracja konstruktora (double) a nie ma definicji. To tyle jak bede mial jeszcze chwile to spojrze ;) - jeszcze mała pomoc potrzebna przy silni, reszta już ok. , Magnus 20/01/04 23:40
// przeciazanie operatorow
liczba operator ! (liczba a) // przeciazenie !
{
double i;
double wyn=1;
for (i=1; i<=a.x ; i++) { wyn=wyn*i; }
cout<<wyn;
}
case '!':
cout<<"wybr !\n";
l1!;
Problem jest z l1!; bo wyskakuje Parse error before!. Nie potrafie się odwołać do tego operatora żeby liczyl to jak trzeba.
udało mi się uruchomić potęgowanie czyli 50% już jest...
pod linkiem ualtualnione źródło. - ok możecie już tu nie zaglądać. Programik działa. , Magnus 21/01/04 00:04
wystarczyło wywołać przez !l1; i działa ok. |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|