Object Oriented Programming The great thing about Object

  • Slides: 27
Download presentation

Object Oriented Programming "The great thing about Object Oriented code is that it can

Object Oriented Programming "The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones ". OOP jokes 2 . © כל הזכויות שמורות. נכתב ע"י יעל ארז

Abstract Data Types (ADT) , אם נשנה את המבנה . נצטרך לתקן את כל

Abstract Data Types (ADT) , אם נשנה את המבנה . נצטרך לתקן את כל המקומות בקוד שמשתמשים בו Abstract data type (Foldoc) (ADT) A type whose internal form is hidden behind a set of access functions. Objects of the type are created and inspected only by calls to the access functions. This allows the implementation of the type to be changed without requiring any changes outside the module in which it is defined. 12 . © כל הזכויות שמורות. נכתב ע"י יעל ארז

 בעיה - חלוקה לקבצים File "grandparent. h" struct foo { int member; };

בעיה - חלוקה לקבצים File "grandparent. h" struct foo { int member; }; File "parent. h" #include "grandparent. h" File “child. h" #include "grandparent. h" #include "parent. h" struct foo עותק ראשון של struct foo עותק שני של שגיאת קומפילציה 24 . © כל הזכויות שמורות. נכתב ע"י יעל ארז

include guards – חלוקה לקבצים #ifndef BIGINT_H #define BIGINT_H . הידור מותנה struct Big.

include guards – חלוקה לקבצים #ifndef BIGINT_H #define BIGINT_H . הידור מותנה struct Big. Int { char* digits; int n_digits; }; Big. Int_create(int); Big. Int_inc(Big. Int *); void Big. Int_print(Big. Int); Big. Int_add(Big. Int a, Big. Int b); #endif// BIGINT_H 25 . © כל הזכויות שמורות. נכתב ע"י יעל ארז

include guards – חלוקה לקבצים : (visual פתרון אפשרי נוסף )רק ב #pragme once

include guards – חלוקה לקבצים : (visual פתרון אפשרי נוסף )רק ב #pragme once struct Big. Int { char* digits; int n_digits; }; Big. Int_create(int); Big. Int_inc(Big. Int *); void Big. Int_print(Big. Int); Big. Int_add(Big. Int a, Big. Int b); 26 . © כל הזכויות שמורות. נכתב ע"י יעל ארז �