כתיבה לקובץ לוג ב C++

כתיבה לקובץ לוג ב C++

תוכלו לעזור לי למצוא קטע קוד שבעזרתו אני אוכל לכתוב לקובץ לוג (טקסט) אחד מכל מקום בתוכנית שלי (ולא רק באובייקט אחד) ?
 
../images/Emo66.gifאמרו לי משהו על סינגלטון

איך אפשר לממש את הכתיבה מכל מקום במערכת לקובץ אחד ? הקובץ צריך להישאר פתוח ? או שכל הזמן פותחים וסוגרים אותו ?
 

DNile

New member
בקובץ אחד תגדיר אובייקט קובץ,

ובכל שאר הקבצים(או לחילופין, בקובץ H אחד שכולם מכלילים אותו), תגדיר את האובייקט כextern. ככה, כל הקבצים יוכלו לראות את האובייקט הזה ולהשתמש בו.
 
איך מגדירים extern ?

לדוגמא - יש לי משתנה מסוג int בשם myVar ב class - a ואני רוצה להשתמש אליו מ class b מה צריך לעשות ? איפה להגדיר אותו int myVar ? (ב a.cpp) ? איפה לרשום את ה extern int myVar (ב a.h) ? ואיך לגרום ל b להכיר את myVar הסתכלתי ב help ולא הצלחתי להבין אני אשמח אם תוכל לתת דוגמא לגבי איך להשתמש ב extern
 

vinney

Well-known member
public

ככה קוראים לזה. למרות שלא מומלץ, עדיף שבclass a תיצור פונקציה שפניה אליה תשנה את a, ותשאיר את a עצמו private.
 

vinney

Well-known member
++C, לא? תשתמש בזה

תיצור class סטאטי, תקרא לו CLog או משהו, באתחול של התוכנה תן לו שם קובץ, ושאר המודולים יפנו לאובייקט היחיד של הclass הזה. ככה גם תעשה בשלוש שורות קוד את המה שאתה צריך, וגם הכל יהיה דינאמי לחלוטין, בלי שתצטרך לעשות שינויים / התאמות לקוד כשתצטרך לשנות את צורת ה logging.
 
למעלה