תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.

Slides:



Advertisements
Similar presentations
Ford Fulkerson. Ford-Fulkerson (N=(G, c, s, t)) ; G = (V, E) for each edge, while exists a path P from s to t in residual network N f do for each edge.
Advertisements

ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Templated Functions. Overloading vs Templating  Overloaded functions allow multiple functions with the same name.
מבוא למדעי המחשב לתעשייה וניהול
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
Esempio Polimorfismo1 // Definition of abstract base class Shape #ifndef SHAPE_H #define SHAPE_H class Shape { public: virtual double area() const { return.
1 תוכנה 1 תרגול 14 – סיכום. 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
Pointers הרצאה קריטית. השאלות הפתוחות מה זה ה- & שמופיע ב scanf מדוע כשמעבירים מחרוזת ל scanf אין צורך ב & האם ניתן להכריז על מערך שגדלו אינו ידוע בתחילת.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
Exam Example Questions
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
Multi-Cycle MIPS דוגמאות. דוגמה 1 נתון קטע הקוד הבא: begin:addi $v0, $zero, -1 loop:add $a0, $a0, $a0 addi$v0,$v0,1 bne $a0, $zero, loop הניחו כי בתחילת.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 4 LSP.
1 מבוא למדעי המחשב ארגומנטים לתוכנית בזמן ריצה קבצים הקדם מעבד Preprocessor טיפוסים סדורים Enumerated Types Typedef.
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תחשיב היחסים (הפרדיקטים)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
המשך תכנות מונחה עצמים 1. היום בתרגול  הורשה  שיטות מיוחדות  פולימורפיזם 2.
הגדרת משתנים יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר.
 Review structures  Program to demonstrate a structure containing a pointer.
ITEC 320 C++ Examples.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Command Line Arguments.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Chapter 8 Scope of variables Name reuse. Scope The region of program code where it is legal to reference (use) a variable The scope of a variable depends.
Variables and Data Types.  Variable: Portion of memory for storing a determined value.  Could be numerical, could be character or sequence of characters.
CSE 232: C++ memory management Overview of Arrays Arrays are the simplest kind of data structure –One item right after another in memory (“contiguous range”
הקדמה Comparator Containers שימושיים Iterator Factory Pattern Trove הטמעה תכנות מתקדם - תרגול 3 Containers ב Java אליהו חלסצ'י תכנות מתקדם
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבנים קרן כליף. ביחידה זו נלמד :  מהו מבנה (struct)  איתחול מבנה  השמת מבנים  השוואת מבנים  העברת מבנה לפונקציה  מבנה בתוך מבנה  מערך של מבנים.
Print Row Function void PrintRow(float x[ ][4],int i) { int j; for(j=0;j
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
תכנות מכוון עצמים ו- C++ יחידה 11 תבניות - templates
Operators Overloading
Command Line Arguments
Understand argc and argv
Object Oriented Programming
מבוא למדעי המחשב סיבוכיות.
הקצאות דינאמיות בשילוב מבנים
מבוא לתכנות מונחה עצמים Object Oriented Programming
Reserved Words.
SQL בסיסי – הגדרה אינדוקטיבית
תכנות מכוון עצמים ו- C++ יחידה 08 פולימורפיזם
C++ Functions, Classes, and Templates
Marina Kogan Sadetsky –
תרגול 8 תחומי הכרה פונקציות
תוכנה 1 תרגול 13 – סיכום.
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Dynamic Memory A whole heap of fun….
Continued from last class
The Stack.
Presentation transcript:

תרגול חזרה

מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct B: virtual A { int y; virtual void a(){} virtual void b(){} }; struct C: A, virtual B { int z; virtual void a(){} virtual void b(){} virtual void c(){} };

ירושה מרובה מהו הפלט? במקרה של שגיאת קומפילציה, יש לציין את הפקודה שגרמה לשגיאה. struct A { virtual void f() { cout << 1; } }; struct B : virtual A { virtual void f() { cout << 2; } }; struct C : virtual A { virtual void f() { cout << 3; } }; struct D : B, C {}; int main() { B* b = new D(); b->f(); }

ירושה מרובה - המשך struct A { virtual void f() { cout << 1; } }; struct B : A { virtual void f() { cout << 2; } }; struct C : A { virtual void f() { cout << 3; } }; struct D : B, C { }; int main() { C* c = new D(); c->f(); }

ירושה מרובה - המשך struct A { virtual void f() { cout << 1 ;} }; struct B : A { virtual void f() { cout << 2; } }; struct C : A { virtual void f() { cout << 3; } }; struct D : B, C { }; int main() { D* d = new D(); d->f(); }

קישור דינאמי מה הפלט של התכנית הבאה: struct C { virtual int eq(const C& other) const { return 1; } }; struct SC : C { virtual int eq(const C& other) const { return 2; } virtual int eq(const SC& other) const { return 3; } }; void go(const C& c, const C& c1, const SC& sc) { cout << c.eq(c) << c.eq(c1) << c.eq(sc) << endl; cout << c1.eq(c) << c1.eq(c1) << c1.eq(sc) << endl; cout << sc.eq(c) << sc.eq(c1) << sc.eq(sc) << endl; } int main(int argc, const char* argv[]) { go(C(), SC(), SC()); return 0; }

המרות struct A { virtual ~A();}; struct B { virtual ~B();}; struct C { int i; C(int j):i(j){}}; struct D: A {...}; struct E: virtual B {...}; class F: A {...}; struct G: C, D, E, F {...}; G& g = *new G; C& c = g; D& d = g; A& a = d;

static_cast (&d); dynamic_cast (&d); static_cast (d); dynamic_cast (d); static_cast (&c); dynamic_cast (&c); static_cast (a); dynamic_cast (a); static_cast (g); dynamic_cast (g); static_cast (g); dynamic_cast (g); static_cast (d); dynamic_cast (d); static_cast (a); dynamic_cast (a);

בדיקת טיפוסים רשומה היא מחלקה שבה ניתן להגדיר אך ורק שדות. record Ra { int n; String s; } record Rb { int n; } Ra ra1 = new Ra(n = 5, s = "Hi"); תכונות של רשומות: Reference Semantics Ra ra2 = ra1; //ra2 and ra1 point at the same object subtyping:רשומה R2 היא תת-טיפוס של רשומה R1 אם לכל שדה f1 ב-R1 קיים שדה f2 ב- R2 כך ש f1 ו-f2 הם בעלי אותו שם, ובנוסף הטיפוס של f2 הוא תת-טיפוס של הטיפוס של f1 (או שהטיפוס של f1 זהה לטיפוס של f2). Rb rb1 = ra1; mutablity: שדות של רשומה ניתנים לשינוי ra1.n = 6; רשומות שתומכות בכל התכונות הנ"ל יוצרות "חור" במערכת הטיפוסים. כתוב דוגמא שמראה כיצד ניתן לגרום לשגיאת טיפוסים בזמן ריצה ע"י שימוש ברשומות.

Little Smalltalk מה מודפס כתוצאה מהרצת הפקודות הבאות? Set new superClass print Class new superClass print Object superClass class print (Class new isMemberOf: Object class) print (Class new isMemberOf: Object) class print