1 / 8

Objekt, Klass och Instans

Objekt, Klass och Instans. Analys av systemet ger mer eller mindre detaljerade objekt Objekten sorteras och klass-diagram ritas upp där relationer reds ut En instans skapas med en klass som mall. Klassrelationer (har, känner till är). En bil har en motor

prue
Télécharger la présentation

Objekt, Klass och Instans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objekt, Klass och Instans • Analys av systemet ger mer eller mindre detaljerade objekt • Objekten sorteras och klass-diagram ritas upp där relationer reds ut • En instans skapas med en klass som mall

  2. Klassrelationer (har, känner till är) En bil har en motor En annan bil har en annan motor, ej samma En spelare känner till en kortlek En annan spelare känner till samma kortlek En bil är ett fordon Ett tåg är också ett fordon

  3. Klassrelationer C++ Har: Instansen av flight skapar en klock instans. Flight.h #include ”klocka.h” Class Flight { Public: Flight(int dep_h,int dep_m) {dep(dep_h,dep_m)}; Private: Klocka dep,arr; } Känner till: Konstruktorn av spelare får in en referens (eller en pekare) till kortleken. Spelare.h #include ”kortbunt.h” Class Spelare { Public: Spelare(Kortbunt& kortbunt) { leken = Kortbunt} int spela(); Private: Kortbunt hand Kortbunt& leken; }

  4. Namespace (1/5) I lab1 ser man using namespe std; Det betyder att man använder sig av konstanter och funktioner som inte ”ses” utanför std namnrymden. Std är namnet för STL (Standard Template Library) Man vill ”gömma” stl för de som inte använder stl.

  5. Namespace (2/5) I funktionen f i filen hej.cpp vill man använda sig av både rectangle och square. Variabel width finns i båda filerna. rectangle.h //deklarationer const int width=30; const int height=10; //mer square.h //deklarationer const int width=50; //mer Hej.cpp #include”rectangle.h” #include ”square.h” void f() { //square calulations int SquareWidth=width; //... } Vilken width ska användas?? -Kompilatorn kan inte sätta ett värde på variablen width.

  6. Namespace (3/5) En lösning är att använda sig av namespaces. rectangle.h Namespace eva { //deklarationer const int width=30; const int height=10; //mer } square.h Namespace kalle { //deklarationer const int width=50; //mer } Hej.cpp #include”rectangle.h” #include ”square.h” void f() { //square calulations int SquareWidth=kalle::width //rectangle calulations int RectWidth=eva::width }

  7. Namespace (4/5) Hej.cpp fungerar också Hej.cpp #include”rectangle.h” #include ”square.h” void f() { using namespace kalle //square calulations int SquareWidth=width //rectangle calulations int RectWidth=eva::width }

  8. Namespace (5/5) Hej2.cpp #include”rectangle.h” #include ”square.h” void f() { using namespace kalle //square calulations int SquareWidth=width using namespace eva //rectangle calulations int RectWidth=width } Hej2.cpp går inte att kompilera. Man kan bara utöka namespaces, inte förändra redan definerat beteende.

More Related