daneshjo IT
دوشنبه 21 خرداد 1386, 10:48 صبح
سلام.
من یک code در رابطه با class اعداد مختلط(x+iy ) نوشتم اما یک قسمت هاییش اشکال داره؟
در این class اعداد x,yاز کاربر گرفته میشوند و به صورت (x+iy) نمایش داده میشوند البته عملیاتی مانند (+ ,* ,-)هم روی این اعدا انجام میشود.
قسمتی از class را که به صورت سوالم مربوط میشود را مینویسم::
#include<iostream.h>
#include<conio.h>
class comple {
friend ostream &operator<<(ostream &,const comple &);
friend istream &operator>>(istream &,const comple &);
private:
float x,y;
public:
comple operator *( comple p );
void result2();
{;
1)این که در بارگذاری operator >>,<< ما دو مقدار x, y را از کاربر میگیریم و بعد چاپ میکنیم. code زیر در قسمت گرفتن عناصر error میگیرد؟
istream &operator>>(istream &input,const comple & obj)
{
cout<<" The form of Complex number is( X+iY)"<<endl;
cout<<" Please enter X & Y "<<endl;
input>>obj.x;
input>>obj.y;
return input;
}
//**************************************************
ostream &operator<<(ostream &output,const comple & obj)
{
output<<obj.x<<" + i("<<obj.y<<")"<<endl<<endl;;
return output;
}
//******************************************
2)در مورد بارگذاری operator *برای مثال من code را نوشتم :
comple comple :: operator *(comple p);
{
comple f;
f.x=x*p.x;
f.y=y*p.y;
return(f);
}
//************************************************
void comple::result2()
{
cout<<" The zarb of these number is: "<<this->x<<"+ i("<<this->y<<")"<<endl<<endl;
{
نمیدونم اشکالش کجاست؟
(من برای بارگذاری operato های (+,-) هم میتونم همانند code بالا عمل کنم.با این تفاوت که به جای operator*, علامت + قرار میگیرد و در methode result به جای result2 کمی نام را تغییر بدهم؟(مثلا result1 ) .آیای امکان انجام چنین کاری را دارم؟؟؟؟
code را که برای main برنامه نوشتم:::
int main()
{
comple s,s1,s2;
clrscr();
cin>>obj;
cin>>obj;
cout<<obj;
cin>>obj;
cin>>obj;
cout<<obj;
s=s1*s2;
s.result2();
getch();
return 0;
}
error های برنامم در قسمت بار گذاری operator>> ( اپراتور cin) و بارگذاری اپراتور (*)است.
منتظر راهنماییتون هستم.
من یک code در رابطه با class اعداد مختلط(x+iy ) نوشتم اما یک قسمت هاییش اشکال داره؟
در این class اعداد x,yاز کاربر گرفته میشوند و به صورت (x+iy) نمایش داده میشوند البته عملیاتی مانند (+ ,* ,-)هم روی این اعدا انجام میشود.
قسمتی از class را که به صورت سوالم مربوط میشود را مینویسم::
#include<iostream.h>
#include<conio.h>
class comple {
friend ostream &operator<<(ostream &,const comple &);
friend istream &operator>>(istream &,const comple &);
private:
float x,y;
public:
comple operator *( comple p );
void result2();
{;
1)این که در بارگذاری operator >>,<< ما دو مقدار x, y را از کاربر میگیریم و بعد چاپ میکنیم. code زیر در قسمت گرفتن عناصر error میگیرد؟
istream &operator>>(istream &input,const comple & obj)
{
cout<<" The form of Complex number is( X+iY)"<<endl;
cout<<" Please enter X & Y "<<endl;
input>>obj.x;
input>>obj.y;
return input;
}
//**************************************************
ostream &operator<<(ostream &output,const comple & obj)
{
output<<obj.x<<" + i("<<obj.y<<")"<<endl<<endl;;
return output;
}
//******************************************
2)در مورد بارگذاری operator *برای مثال من code را نوشتم :
comple comple :: operator *(comple p);
{
comple f;
f.x=x*p.x;
f.y=y*p.y;
return(f);
}
//************************************************
void comple::result2()
{
cout<<" The zarb of these number is: "<<this->x<<"+ i("<<this->y<<")"<<endl<<endl;
{
نمیدونم اشکالش کجاست؟
(من برای بارگذاری operato های (+,-) هم میتونم همانند code بالا عمل کنم.با این تفاوت که به جای operator*, علامت + قرار میگیرد و در methode result به جای result2 کمی نام را تغییر بدهم؟(مثلا result1 ) .آیای امکان انجام چنین کاری را دارم؟؟؟؟
code را که برای main برنامه نوشتم:::
int main()
{
comple s,s1,s2;
clrscr();
cin>>obj;
cin>>obj;
cout<<obj;
cin>>obj;
cin>>obj;
cout<<obj;
s=s1*s2;
s.result2();
getch();
return 0;
}
error های برنامم در قسمت بار گذاری operator>> ( اپراتور cin) و بارگذاری اپراتور (*)است.
منتظر راهنماییتون هستم.