PDA

View Full Version : سربارگذاری عملگرها و مشکل در اجرای برنامه ...



mandbigS
سه شنبه 21 خرداد 1387, 11:54 صبح
سلام ...

من یه برنامه نوشتم به شکل زیر ...


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

class bin
{
private :
int de;
char bi[4];

int bitode ()
{
de=0;
int i=0;
while(bi[i])
{
de=(de*2) + (bi[i]-'0');
i++;
}
return de;
}

char detobi(int de)
{
int i , j=0;
char bi1[4];
while (de!=0)
{
bi1[j]=de%2;
de=de/2;
j++;
}
for (i=j-1;i>=0 ; i--)
{
bi[i]=bi1[j]+'0';
}
return bi[i];
}

public :

bin ()
{
strcpy (bi," ");
}

void getbi()
{
gets(bi);
}

void putbi()
{
for (int i=0 ; i<strlen(bi) ; i++)
cout << bi[i];
}

bin operator +(bin b2)
{
bin temp ;
temp.de=bitode()+b2.bitode();
temp.detobi();
return temp;
}

/*bin operator -(bin b2)
{
bin temp ;
temp.de=bitode()-b2.bitode();
temp.detobi();
return temp;
}

bin operator *(bin b2)
{
bin temp ;
temp.de=bitode()*b2.bitode();
temp.detobi();
return temp;
}

bin operator /(bin b2)
{
bin temp ;
temp.de=bitode()/b2.bitode();
temp.detobi();
return temp;
}*/

};

int main ()
{

bin b1 , b2 , b3;
b1.getbi();
b2.getbi();
b3 = b1 + b2;

b3.putbi();

getch();
return 0;
}


در قسمت private چند تا تابع هست و در قسمت public عملگرها سربارگذاری شدن ... اما موقع اجرا یه جوری میشه ... اصلا خودتون ببینید بهتره ... ممنون از راهنماییتون ...

البته این تاپیک یکمی به تاپیک سربارگذاری که تازه ایجاد شده و شلوغ هم هست خیلی ربط داره ولی چون نخواستم اونجا شلوغ تر بشه و بحث آموزشیش به هم بخوره یه تاپیک جدید زدم ...

emad_67
سه شنبه 21 خرداد 1387, 13:09 عصر
یعنی چی برنامه یه جوری میشه؟
این خط هم سینتکس ارور داره:


temp.detobi();

باید بهش پاراکتر ارسال کنی.

Sepidar
سه شنبه 21 خرداد 1387, 13:12 عصر
به نظرم بهتره سوالت رو با یه کد خلاصه تر تکرار کنی. کسی (یا حداقل بنده) حال نداره بشینه کد بقیه رو بخونه...

mandbigS
سه شنبه 21 خرداد 1387, 13:33 عصر
داداشی لازم نیست کد رو بخونی ... یه کپی کن و اجراش کن ... ببین یه ارور میده ... یعنی اجرا میشه ولی وسطش وایمیسه ...

البته مشکلمو حل کردم خودم ...


char bi1[4];

باید به صورت int تعریف میشد که من char تعریف کرده بودم ... بافر اور فلو میداد وسط راه بد مصب ... :لبخند::لبخند::لبخند:

mandbigS
سه شنبه 21 خرداد 1387, 13:35 عصر
یعنی چی برنامه یه جوری میشه؟
این خط هم سینتکس ارور داره:


temp.detobi();

باید بهش پاراکتر ارسال کنی.

ممنون emad_67 جان ... مرسی به خاطر راهنماییت ...