PDA

View Full Version : تولید نوع جدید در سی



mammad_asir
یک شنبه 11 اردیبهشت 1390, 14:20 عصر
من میخوام یک نوع جدید درست کنم مثلا بنویسم goya x; که goya اسم نوع , x متغیری از آن نوع باشد و این نوع را برای اعداد گویا میخوام که کار های +و-و*و/وساده سازی در گویا را انجام بده ولی نمیدونم باید چه کنم و از کجا شروع کنم و روش حل را بلد نیستم کسی کمک کنه ممنون میشم

code_baz
دوشنبه 12 اردیبهشت 1390, 10:09 صبح
c رو نمیدونم ولی در c++ با استفاده از کلاس ها و خاصیت operator overloading میتونی این کارا رو بکنی
#include<iostream.h>
using namespace std;
class cgooya
{
public :
int top,down;
cgooya(int a,int b){top=a;down=b;};//second constructor
cgooya(){}; //a constructor
cgooya operator + (cgooya); //operator overloadinf func()
};


cgooya cgooya::operator+ (cgooya inct) //defining operator overloading func()
{
cgooya temp;
temp.top=top+inct.top;
temp.down=down+inct.down;
return (temp);
}

int main()
{
cgooya a(6,2),b(24,6),c;
c=a+b;
cout<<c.top<<"\n"<<c.down;

}

در تعریف کلاس بالا دو تا مشخصه ی top برای صورت و down برای مخرج رو تعریف کردم و
بعد توابع سازنده و در آخر هم تابعی رو به منظور اورلود کردن علامت + مشخص کردم و در خارج از تعریف کلاس اون رو تعریف کردم.
در کامپایلر gcc این کد کار میکنه
در هر صورت اگه به دردت نخورد یا سوالی داشتی بگو ببینیم چی میشه
راستی تو اینترنت در باره operator overoading , classes در c++ یه مطالعه ای بکنی به جوابت میرسی