ABA


"מה לא נכון פה בקוד? מחלקות בC++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13677 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13677
עידן_הכלי

   16:44   04.11.06   
אל הפורום  
  מה לא נכון פה בקוד? מחלקות בC++  
 
   ערכתי לאחרונה בתאריך 04.11.06 בשעה 16:45 בברכה, עידן_הכלי
 

class rect{
public:
int a,b;
void show();
int area();
int perimeter();
void set_a(int x);
void set_b(int x);
};

int rect::area()
{
int c;
c=a*b;
return (c);
}


void rect::show(){
int i,j;
for (i=0;i<a;i++) {
cout<<'\n';
for (j=0;j<b;j++)
cout<<'*';
}
cout<<'\n';
}

int rect::perimeter() {
int d;
d=(a+b)*2;
return (d);
}


void rect::set_a(int x) {
if (0<x && x<=25)
a=x;
else
{
cout<<"error inputting a \n";
exit(1);
}
}

void rect::set_b(int x) {
if (0<x && b<=80)
b=x;
else
{
cout<<"error inputting b \n";
exit(1);
}
}

אני מקבל שגיאת קומפיילר:


c:\c++\rect.h(11) : error C2628: 'rect' followed by 'int' is illegal (did you forget a ';'?)
c:\c++\rect.h(12) : error C2556: 'class rect __thiscall rect::area(void)' : overloaded function differs only by return type from 'int __thiscall rect::area(void)'
c:\c++\rect.h(5) : see declaration of 'area'
c:\c++\rect.h(12) : error C2371: 'area' : redefinition; different basic types
c:\c++\rect.h(5) : see declaration of 'area'
c:\c++\rect.h(42) : error C2065: 'exit' : undeclared identifier
Error executing cl.exe.

תודה מראש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב: Nesher  04.11.06 18:08 1
     תודה רבה אחי, זה היה בגלל שרשמתי פונ' בתוך קובץ H עידן_הכלי 05.11.06 16:54 2
         בבקשה Nesher  05.11.06 19:18 3

       
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   18:08   04.11.06   
אל הפורום  
  1. מכתב:  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 04.11.06 בשעה 18:11 בברכה, Nesher
 
תשים () אחרי שם המחלקה בהגדרה...
ועוד משהו... אתה יכול לחסוך הגדרות משתנים מיותרות

למשל: במקום


int rect::perimeter()
{
int d;
d=(a+b)*2;
return (d);
}

לכתוב

int rect::perimeter()
{
return ((a+b)*2);
}

ועוד משהו, set_a ו-set_b מיותרים אם a ו-b מוגדרים כ-public
תשנה להם את ההגדרה ל-private!
וה-exit לא תקין כי כנראה חסר לך include מסויים

וכמובן שאת מימוש של הפונ' אתה שם בקובץ CPP וההגדרה של המחלקה בקובץ H


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
עידן_הכלי

   16:54   05.11.06   
אל הפורום  
  2. תודה רבה אחי, זה היה בגלל שרשמתי פונ' בתוך קובץ H  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   19:18   05.11.06   
אל הפורום  
  3. בבקשה  
בתגובה להודעה מספר 2
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net