פונקציות סטטיות

29 views
Skip to first unread message

tal maayan

unread,
Feb 18, 2012, 3:59:29 AM2/18/12
to 83-223
היי,
רציתי לדעת האם פונקציות סטטיות בתוך קלאס לא יכולות לגשת כלל לממברים של
המחלקה או שהן יכולות לגשת רק למשתנים הסטטים של המחלקה
ובמידה והפונקציה הסטטית לא נמצאת בתוך קלאס אלא היא פונקציה גלובלית האם
היא יכולה לגשת למשתני המחלקה (בהנחה שהם בפאבליק ולא בפרייבט)
או שהיא יכולה לגשת רק למשתני המחלקה הסטטים (שוב שנמצאים בפאבליק)

כי יש שאלה במבחן של 2007 מועד א
בחלק של נכון/לא נכון
ש: מתודה סטטית לא יכולה לגשת למשתני המחלקה?
ת: נכון, לא נקראת מאובייקט

ואני חשבתי שהיא יכולה לגשת למשתני המחלקה הסטטים...

תודה!!

Matan Keidar

unread,
Feb 18, 2012, 6:12:17 AM2/18/12
to 83-...@googlegroups.com
היי טל,
פונקציות סטטיות יכולות לגשת למשתני מחלקה סטטיים או מתודות סטטיות בלבד.
הסיבה לכך היא שהן לא נקראות מתוך מופע קיים של המחלקה ולכן אין להן this.

אם הפונקציה הסטטית לא נמצאת בתוך מחלקה אלא גלובלית אזי היא נחשבת לפונקציה חופשית לכל דבר. במקרה זה תהיה לה גישה רק לכל מה שהוא תחת הרשאת public (ואם היא רוצה לגשת למשתני מחלקה שאין להם מופע, אזי הם חייבים להיות סטטיים).

לסיכום, מתודה סטטית לא יכולה לגשת למשתני מחלקה מכיוון שאין לה this. היא כן יכולה לגשת למשתנים הסטטיים של המחלקה.

מתן 

2012/2/18 tal maayan <talma...@gmail.com>

tal maayan

unread,
Feb 18, 2012, 7:47:07 AM2/18/12
to 83-223
אז שאלה נוספת בנוגע למשתנים סטטים:

אני מכירה שני שימושים למילה הזו:
משתנה סטטי - נולד בלי שום קשר למחלקה
פונקציה סטטית - יש לה גישה אך ורק למשתנים סטטיים

האם יש שימושים נוספים בשפה למילה
static
ששכחתי?

On Feb 18, 1:12 pm, Matan Keidar <matan...@gmail.com> wrote:
> היי טל,

> פונקציות סטטיות יכולות לגשת למשתני מחלקה *סטטיים* או מתודות *סטטיות* בלבד.


> הסיבה לכך היא שהן לא נקראות מתוך מופע קיים של המחלקה ולכן אין להן this.
>
> אם הפונקציה הסטטית לא נמצאת בתוך מחלקה אלא גלובלית אזי היא נחשבת לפונקציה
> חופשית לכל דבר. במקרה זה תהיה לה גישה רק לכל מה שהוא תחת הרשאת public (ואם
> היא רוצה לגשת למשתני מחלקה שאין להם מופע, אזי הם חייבים להיות סטטיים).
>
> לסיכום, מתודה סטטית לא יכולה לגשת למשתני מחלקה מכיוון שאין לה this. היא כן
> יכולה לגשת למשתנים הסטטיים של המחלקה.
>
> מתן
>

> 2012/2/18 tal maayan <talmaay...@gmail.com>

Matan Keidar

unread,
Feb 18, 2012, 8:38:42 AM2/18/12
to 83-...@googlegroups.com
יש הבדל בין המילה static ב-C ובשפת ++C:
בשפת C כאשר מגדירים משתנה סטטי מתכוונים למשתנה לוקאלי ששייך לפונקציה מסוימת. טווח ההכרה שלו הוא רק בתוך הפונקציה והוא מת רק בסוף התוכנית.
בשפת ++C בנוסף לנ"ל יש לנו משתנה מחלקה ומתודות סטטיות, ההסבר שכתבתי מקודם.

בתרגולים ישנה דוגמא טובה לעבודה עם משתנים סטטיים.

2012/2/18 tal maayan <talma...@gmail.com>
Reply all
Reply to author
Forward
0 new messages