ABA


"שאלה בC++, מחלקות"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10641 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10641
איציק2
חבר מתאריך 26.4.08
2436 הודעות, דרג אמינות חבר זה
   18:07   06.04.12   
אל הפורום  
  שאלה בC++, מחלקות  
 
   היי,
ניתן לנו תרגיל בית, על CLASSים,

בכל אופן הגדרתי מטודות GET וSET של תאריך מסויים..
אח"כ הייתי צריך לכתוב מטודה שתקדם את התאריך ב1.
אז השתמשתי מן הסתם במטודות הקודמות של הSET וGET, כדי לקבל את התאריך הישן ולהכניס את התאריך החדש..
הבעיה שפתאום התוכנית שלי לא מכירה את המטודות סט וגט!.
נותן לי קו אדום מתחת לזה וכותב שהמטדות הללו לא הוגדרו..
יש לציין שההצהרה של המטודות היא בקובץ HEADER והיישום של המטודות בקובץ cpp בעל אותו שם ועשיתי עליו גם כן include לקובץ header.
גם כן השתמשתי במטודות set get במטודות אחרות והכל עבד בסדר גמור...
אשמח לעזרה פה כי אני דיי חסר אונים ולא מבין מה קרה.. בכל אופן הנה הקוד במלואו למי שירצה לראות :

קובץ הצהרה:


#ifndef MYDATE_H
#define MYDATE_H
#include <iostream>
#include <typeinfo.h>

using namespace std;

class myDate {
private:
int _dd;
int _mm;
int _yy;
char * _note;

public:
myDate();

int getdd()const;
int getmm()const;
int getyy()const;

void setdd(int dd);
void setmm(int mm);
void setyy(int yy);

void setAll();

void inc();

void init();

void changeComment(char * note);

void print() const;
~myDate();
};
#endif

והקובץ cpp:


void inc()
{
if (setdd(getdd()+1) == 1)
if (setmm((getmm()+1) == 1))
setyy(getyy()+1);


return;
}

כאשר כל הsetים והgetים פה מסומנים בצבע אדום וכתוב שלא הוגדרו..

תודה


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  שאתה רושם מימוש ב CPP אתה צריך לשייך את הפונקציה למחלקה Net_Boy  06.04.12 18:14 1
     ואי בדיוק קלטתי את זה ובאתי לערוך את ההודעה, תודה רבה איציק2 06.04.12 18:16 2
         בכיף, חג שמח :) Net_Boy  06.04.12 18:18 3

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   18:14   06.04.12   
אל הפורום  
  1. שאתה רושם מימוש ב CPP אתה צריך לשייך את הפונקציה למחלקה  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 06.04.12 בשעה 18:17 בברכה, Net_Boy
 
כלומר החתימה של הפונקציה Inc שלך צריכה להיות :

void myDate::inc(){
// Do something
}

מאחורי הקלעים זה אומר לקומפיילר שהפונקציה היא thiscall כלומר, הפרמטר הראשון (הוא בלתי נראה מהצד שלך) של הפונקציה שלך יהיה myDate* this.
ככה למעשה, מגיע הפוינטר this שלך.
אם בתוך הפונקציה שלך אתה קורא למשתנה או פונקציה, בצורה אוטומטית הקומפיילר עושה
this->DoSomething();


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
איציק2
חבר מתאריך 26.4.08
2436 הודעות, דרג אמינות חבר זה
   18:16   06.04.12   
אל הפורום  
  2. ואי בדיוק קלטתי את זה ובאתי לערוך את ההודעה, תודה רבה  
בתגובה להודעה מספר 1
 
   שהיה חג שמח !


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   18:18   06.04.12   
אל הפורום  
  3. בכיף, חג שמח :)  
בתגובה להודעה מספר 2
 
  


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

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

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



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