Övriga byggstenar. Övriga byggstenar. Några tips under programutveckling. Beroenden Pekare till funktioner Typkonvertering

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "Övriga byggstenar. Övriga byggstenar. Några tips under programutveckling. Beroenden Pekare till funktioner Typkonvertering"

Transkript

1 Övriga byggstenar Beroenden Pekare till funktioner Övriga byggstenar Beroenden er Definitioners synlighet Funktionspekare Icke-medlemsfunktioner Medlemsfunktioner 2D1387 Programsystemkonstruktion med C++ Johnny Bigert Några tips under programutveckling - att spara tid Minska utveckligstiden: Minimera antal beroenden mellan filerna Skapa ett projekt / använd make. Automatisering lönar sig alltid! Använd debuggern flitigt Undvik dynamisk allokering Undvik att läcka eventuellt dynamiskt minne genom att matcha allokering i konstrukor med deallokering i destruktor. Några tips under programutveckling - att spara tid Minska utveckligstiden: Använd const på rätt sätt ändringar i efterhand kan bli mycket omfattande const hjälper dig att hitta fel Bryt ut gemensam funktionalitet och lägg i rätt klass. Tänk på vad som hör / inte hör hemma i basklassen 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 1

2 Beroenden För att minska kompileringstiderna vill man ha så få beroenden som möjligt mellan filer: Undvik att inkludera onödiga filer i dina headerfiler. Undvik att använda inline på funktioner som använder annat objekt eftersom dess definition då måste vara synlig. Använd framåtdeklaration där detta är möjligt. När kan man använda framåtdeklaration av en klass och när måste definitionen vara synlig? Definitionen måste vara synlig för alla basklasser Definitionen måste vara synlig då man definierar objekt, t.ex. som medlem Definitionen måste vara synlig då man använder objekt, t.ex. använder en av objektets funktioner 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert Definitionen behöver ej vara synlig i övriga fall! Exempel: Pekare eller referens till objekt Returtyp i deklaration av funktion Argument i deklaration av funktion Användning av typen i typdeklaration eller som malltyp Exempel på framåtdeklaration av klasser // i filen A.h #include "D.h" // inkludera D:s definition class B; // (framåt)deklaration av B class C; // (framåt)deklaration av C class A // definition av klassen A B foo(b); // B behöver ej vara definierad! C *bar(); // C behöver ej vara definierad B &b; // B behöver ej vara definierad D c; // ok: D är definierad B b; // fel: B måste vara definierad std::vector<b> v; // B behöver ej vara definierad 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 2

3 Klassdefinitionen måste vara synlig vid användning // i filen A.cpp #include "A.h" // A måste vara definierad #include "B.h" // B måste definieras eftersom // foo() använder och returnerar B extern C *get_cp(); // get_cp definierad i annan fil B A::foo(B) return B(); // B måste vara definierad } C *A::bar() C *p = get_cp(); // returnerar pekare till C return p; // C behöver ej vara definierad } // om vi inte använder C Undvik beroenden pimpl-idiomet Pointer to implementation Undvik beroenden i headerfiler genom extra indirektion genom pekare Fördelar: få beroenden!, stora headerfiler (typ windows.h) kan ofta helt elimineras från dina headerfiler Nackdelar: extra avreferering, extra objekt + dynamisk allokering 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert Undvik beroenden // i fil.h class Impl; class A public: A(); ~A(); int foo(); private: Impl *impl; // framåtdeklaration // definieras i fil.cpp // implementeras i Impl // pekare till implementation // i fil.cpp class Impl // här definieras Impl! //...och ingen kommer åt den public: B hidden1; // dessa medlemmar låg förut i A C hidden2; //...vi gömmer dem i Impl! int foo() return 0; } // utför A::foo()s arbete Funktionspekare Pekare till funktioner Pekare till medlemsfunktioner A::A() impl = new Impl; } // allokera A::~A() delete impl; } // deallokera int A::foo() return impl->foo(); } // skicka vidare 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 3

4 Pekare till funktioner Antag att vi har en lista och vill använda eller manipulera varje element En funktionspekare ger oss en möjlighet att slippa upprepa kod Vi applicerar funktionspekaren iterativt, dvs på vart och ett av elementen i listan Pekare till funktioner typedef void (*fp)(int &); // funktionspekare void iterate(int a[], int size, fp action) for(int j = 0; j < size; j++) action(a[j]); } void mod3(int &i) i %= 3; } // rest vid division void print(int &i) std::cout << i << " "; }... int a[7] = 1, 2, 3, 4, 5, 6, 7 iterate(a, 7, mod3); iterate(a, 7, print); // ger utmatning D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert Pekare till medlemsfunktioner Precis på samma sätt som man pekar på globala funktioner kan man peka på funktioner i klasser Dessa funktionspekare är lite speciella eftersom de måste ha tillgång till en thispekare Pekare till medlemsfunktion är egentligen en offset som pekar ut den funktion som ska köras Pekare till medlemsfunktioner class A public: void foo(int) } static void bar(int) } typedef void(*fp)(int); fp p1 = &A::foo; // fel: foo är void(a::*)(int) fp p2 = &A::bar; // ok: bar är void(*)(int) typedef void(a::*fpm)(int); fpm p3 = &A::foo; // ok: foo är void(a::*)(int) A a; (a.*p3)(4711); // kör foo från a A *pa = &a; (pa->*p3)(4711); // kör foo från a via pa 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 4

5 Typinformation och konvertering Implicit och explicit konvertering Säker typkonvertering till nedärvd klass Man använder typkonvertering för att konvertera en typ till en annan Implicit konvertering, dvs automatisk, sker mellan de flesta inbyggda typer Pekare kan konverteras till voidpekare, pekare kan även konverteras till en basklasspekare Subklasser konverteras till basklassen 2D1387 Programsystemkonstruktion med C++ Johnny Bigert Olika typer av explicit konvertering: static_cast är motsatsen till implicit konvertering dynamic_cast är konvertering från basklass till subklass och kan bara lösas under körning reinterpret_cast är bitvis tolkning const_cast tar bort kvalifieraren const eller volatile const char str[] = "C++"; void *vp; vp = str; // fel: kastar bort const vp = (void *)str; // ok, men fult och otyligt vp = const_cast<char *>(str); // rätt sätt char *s = const_cast<char *>(str); // ok vp = s; // ok: samma kvalifierare s = reinterpret_cast<char *>(vp); // ok s = reinterpret_cast<char *>(str); // fel: const_cast // måste användas 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 5

6 struct A virtual void f() } struct B : public A void f() } B b; A *ap = &b; B *bp = dynamic_cast<b *>(ap); extern void foo(double); foo(7); // bp!= 0 eftersom // ap pekar på b // implicit konvert // från int till dbl Typinformation under körning Genom operatorn typeid() får man en referens till en instans av klassen type_info som innehåller typinformation type_info har en metod name() som ger klassens namn int i = static_cast<int>(3.14); // explicit konvert // från dbl till int 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ Johnny Bigert Typinformation under körning Exempel på användning: class A A *a = new A; const type_info &ta = typeid(a); // typinfo på klass const type_info &ta = typeid(*a); // typinfo på objekt std::cout << ta.name() << std::endl; // namn på typ if(ta == ta) // typer kan jämföras std::cout << "They are the same" << std::endl; if(ta.before(ta)) // typer har en ordning std::cout << "ta is before ta" << std::endl; 2D1387 Programsystemkonstruktion med C++ Johnny Bigert D1387 Programsystemkonstruktion med C++ 6

Del3 Klassanvändning, operatorer och pekare Ämnesområden denna föreläsning:

Del3 Klassanvändning, operatorer och pekare Ämnesområden denna föreläsning: 2D1387, Programsystemkonstruktion med C++ 00/01 1 Del3 Klassanvändning, operatorer och pekare Ämnesområden denna föreläsning: Synlighet Överlagring av operatorer Slide 1 Vänner till klasser och funktioner

Läs mer

Det finns många flaggor till g++,

Det finns många flaggor till g++, C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.

Läs mer

Synlighet. Namespace Scope-operatorn Klasser Vänner

Synlighet. Namespace Scope-operatorn Klasser Vänner Synlighet Namespace Scope-operatorn Klasser Vänner Synlighet Ett problem med moduler i C är att alla variabel- och funktionsnamn ligger globalt synliga. C++ botar detta genom att införa det mycket användbara

Läs mer

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning:

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning: 2D1387, Programsystemkonstruktion med C++ 01/02 1 Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning: Klasser, åtkomst Medlemmar, medlemsfunktioner, inline Slide 1 Konstruktorer och destruktorer

Läs mer

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning:

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning: 2D1387, Programsystemkonstruktion med C++ 00/01 1 Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning: Klasser, åtkomst Medlemmar, medlemsfunktioner, inline Slide 1 Konstruktorer Destruktorer

Läs mer

Dynamisk bindning och polymorfism

Dynamisk bindning och polymorfism Dynamisk bindning och polymorfism I C++ är pekare till basklasser polymorfa, dvs de kan peka på objekt av en subklass typ Vid statisk bindning sker all bindning vid kompileringen -> Vid ett metodanrop

Läs mer

Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << "Hello World\n"; return 0; } C++, Övning 1

Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << Hello World\n; return 0; } C++, Övning 1 Ett enkelt program i C++, hello.cpp C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel int

Läs mer

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42 Programmering i C++ EDA623 Arv EDA623 (Föreläsning 6) HT 2013 1 / 42 Arv Innehåll Härledda klasser Konstruktorer och destruktorer vid arv Tillgänglighet Polymorfism och dynamisk bindning Abstrakta klasser

Läs mer

grundläggande C++, funktioner m.m.

grundläggande C++, funktioner m.m. C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel Ett enkelt program i C++, hello.cpp #include

Läs mer

F8: Typkonvertering i C++

F8: Typkonvertering i C++ Institutionen för datavetenskap Umeå Universitet F8: Typkonvertering i C++ Objektorienterad programmering för ingenjörer, VT04 Innehåll Implicit konvertering Konverteringskonstruktor Konverteringsoperator

Läs mer

C++-programmets beståndsdelar

C++-programmets beståndsdelar C++-programmets beståndsdelar Ett C++-program är uppdelat i headerfiler (fil.h) och implementationsfiler (fil.cpp) Programmet måste innehålla åtminstone funktionen int main() main() startar programmet

Läs mer

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container {

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container { Innehåll EDAF30 Programmering i C++ Arv. Polymorfism. Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Kort om dynamisk polymorfism Virtuella funktioner 2 Arv i C++ Konstruktorer och destruktorer Tillgänglighet

Läs mer

allokeras på stacken dynamiskt new delete

allokeras på stacken dynamiskt new delete Minneshantering Lokala objekt allokeras på stacken och har kort livslängd Objekt med längre livslängd måste allokeras dynamiskt på heapen (free store) Dynamisk allokering görs med new och delete Statiska

Läs mer

TENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00

TENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00 TENTAMEN CD5250 Objektorienterad programutveckling med C++, 5p Max poäng: 40 Betygsgränser: 3: 20 4: 28 5: 36 Datum: 1999-06-01, Tid: 14:00-19:00 Ansvarig: Ivica Crnkovic Upp till 5 poäng kan komma från

Läs mer

2D1387, Programsystemkonstruktion med C++ 01/02 1

2D1387, Programsystemkonstruktion med C++ 01/02 1 2D1387, Programsystemkonstruktion med C++ 01/02 1 Slide 1 Del4 Klassmallar, funktionsmallar och STL Ämnesområden denna föreläsning: Funktionsmallar (function templates) Klassmallar Mallar för medlemmar

Läs mer

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33 Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation

Läs mer

KLASSER. Inkapsling Abstrakt datatyp Public och private. Klassmedlemmar Datamedlemmar Exempel Funktionsmedlemmar

KLASSER. Inkapsling Abstrakt datatyp Public och private. Klassmedlemmar Datamedlemmar Exempel Funktionsmedlemmar KLASSER Inkapsling Abstrakt datatyp Public och private Klassmedlemmar Datamedlemmar Funktionsmedlemmar Initiering av objekt Konstruktor Ta del av objektets tillstånd Förändra objektets tillstånd Avinitiera

Läs mer

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida:

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida: 2D1387, Programsystemkonstruktion med C++ 00/01 1 Slide 1 2D1387, Programsystemkonstruktion med C++ Johnny Bigert, johnny@nada.kth.se Kursens hemsida: http://www.nada.kth.se/kurser/kth/2d1387 Varför vill

Läs mer

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010 Programsystemkonstruktion med C++: Övning 2 Karl Palmskog palmskog@kth.se september 2010 Specalfunktioner i klasser Konstruktorer i konstruktorerna för en klass initieras klassens medlemmar initialvärden

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

SP:PROG3 HT12 Tenta 2013-01-19

SP:PROG3 HT12 Tenta 2013-01-19 DSV SU/KTH sid 1 (5) SP:PROG3 SP:PROG3 HT12 Tenta 2013-01-19 Tentan består av tre uppgifter. Max poäng är 30. För betyget E (godkänd) krävs minst 18 poäng och minst en poäng på varje uppgift. Betygskriteria

Läs mer

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser. Vi får också möjlighet att referera

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

int (*fp) (char, char*) //pekare till funktion som tar //argumenten (char, char*) och //returnerar int

int (*fp) (char, char*) //pekare till funktion som tar //argumenten (char, char*) och //returnerar int Pekare char v[10]; //array med 10 characters char* p; //pekare till characters //p pekar på v's fjärde element p = &v[3] p & är "adressen-av" operatorn. För de flesta typer T gäller att T* är typpekare.

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser.

Läs mer

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla

Läs mer

*:85/ID200V C++ HT07. Föreläsning 8 Medlemspekare Undantagshantering Namnrymder

*:85/ID200V C++ HT07. Föreläsning 8 Medlemspekare Undantagshantering Namnrymder *:85/ID200V C++ HT07 Föreläsning 8 Medlemspekare Undantagshantering Namnrymder Medlemspekare Ibland uppstår behovet att peka ut en viss medlem, som skall behandlas i olika objekt. C++ har begreppet medlemspekare

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Klasser - speciella medlemsfunktioner Eric Elfving Institutionen för datavetenskap En klass ansvarar ofta för en resurs. Ibland är resursen så enkel som en datamedlem

Läs mer

1 Klasser och objektorientering Vad är objektorientering?

1 Klasser och objektorientering Vad är objektorientering? 1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det

Läs mer

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26 Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623

Läs mer

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

5 Arv och dynamisk bindning FIGUR

5 Arv och dynamisk bindning FIGUR 5 Arv och dynamisk bindning Arv är en av hörnstenarna i objektorienterad programmering. Med hjälp av arv kan man skapa underhållsvänliga och förändringsvänliga system. Att hitta arvsrelationer är en viktig

Läs mer

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med. Det objektorienterade synsättet A - 1 Objekt A - 2 Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med. De enskilda variablerna i programmet, de s.k. objekten,

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Objektorientering - Arv och polymorfi Klas Arvidsson Institutionen för datavetenskap 1 / 33 UML UML är ett grafiskt språk som (bland mycket annat) används för

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden

Läs mer

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående

Läs mer

Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010

Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010 Programsystemkonstruktion med C++: Övning 1 Karl Palmskog palmskog@kth.se september 2010 Programuppbyggnad Klassens uppbyggnad en C++-klass består av en deklaration och en definition deklaration vanligtvis

Läs mer

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare Funktionspekare, inledning: funktionsanropsmekanismen Vid funktionsanrop läggs aktuella argumentvärden och återhoppsadressen på stacken, därefter sker ett hopp till adressen för funktionens första instruktion.

Läs mer

Programsystemkonstruktion med C++

Programsystemkonstruktion med C++ Programsystemkonstruktion med C++ Övning 1 Daniel Aarno bishop@kth.se Översikt övning 1 Kompilering och länkning Makefile Preprocessordirektiv Funktioner Funktionen main() Datatyper Minneshantering Pekare

Läs mer

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

Innehåll. Resource handles. Resurshantering. Minnesallokering. Minnesallokering Exempel: allokering på stacken. 7. Resurshantering, Felhantering

Innehåll. Resource handles. Resurshantering. Minnesallokering. Minnesallokering Exempel: allokering på stacken. 7. Resurshantering, Felhantering Innehåll EDAF30 Programmering i C++ 7. Resurshantering, Felhantering Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Resurshantering Stack-allokering Heap-allokering: new och delete 2 Felhantering Exceptions

Läs mer

1. Klass med en dynamiskt allokerad variabel, definitionsfilen-del Klass med en dynamiskt allokerad variabel, inkluderingsfilen.

1. Klass med en dynamiskt allokerad variabel, definitionsfilen-del Klass med en dynamiskt allokerad variabel, inkluderingsfilen. 1. Klass med en dynamiskt inkluderingsfilen Klass2-1 1. Klass med en dynamiskt definitionsfilen-del 1 Klass2-2 #ifndef person #define person #include #include class Person private:

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

Tentamen i DD2387 Programsystemkonstruktion med C++

Tentamen i DD2387 Programsystemkonstruktion med C++ Tentamen i DD2387 Programsystemkonstruktion med C++ Datum: Fredag 24 oktober 2008, 14-18 Hjälpmedel: En eller två valfria läroböcker om C++ id: Tid: 4 timmar Skriv inte ditt namn på tentan. Under tentan

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursassistent: Mårten Björkman,

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursassistent: Mårten Björkman, 2D1387, Programsystemkonstruktion med C++ 01/02 1 Slide 1 2D1387, Programsystemkonstruktion med C++ Johnny Bigert, johnny@nada.kth.se Kursassistent: Mårten Björkman, celle@nada.kth.se Kursens hemsida:

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta

Läs mer

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b.

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b. Innehåll EDAF30 Programmering i C++ Generisk programmering med templates (mallar) Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Funktionsmalllar 2 Generisk programmering med templates (mallar) 2/1 Generisk

Läs mer

Arv Murach s: kap 14

Arv Murach s: kap 14 Arv Murach s: kap 14 2013-02-26 1 Elektronikcentrum i Svängsta AB Arv (Inheritance) Grundpelare inom OOP En klass, den härledda, utvidgar en annan klass, basklassen, genom att ärva dess metoder. Den härledda

Läs mer

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar Klassbegreppet och C++ OOP UML Klasser och objekt i C++ Uppdelning i filer Attribut och metoder Inkappsling - åtkomst Klassattribut - objektattribut Objekt-orienterad programmering Att använda ett objektorienterat

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

F2: Krav på objektorienterat språk

F2: Krav på objektorienterat språk Institutionen för datavetenskap Umeå Universitet F2: Krav på objektorienterat språk Objektorienterad programmering för ingenjörer, VT-04 Innehåll Krav på objektorienterat språk Avvägningar vid design av

Läs mer

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper. Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något

Läs mer

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL Kapitel 4 Introduktion till mallar STL Kapitel 4 - Klassmallar, funktionsmallar och STL Funktionsmallar Klassmallar Mallar för medlemmar Specialisering Standardbiblioteket för mallar (STL): Namnrymden

Läs mer

Collections Collections "Envisa" objekt Klasserna Bofstream och Bifstream Definition av metoder i klasserna Bifstream och Bofstream Klassen Streng

Collections Collections Envisa objekt Klasserna Bofstream och Bifstream Definition av metoder i klasserna Bifstream och Bofstream Klassen Streng Collections Collections "Envisa" objekt Klasserna Bofstream och Bifstream Definition av metoder i klasserna Bifstream och Bofstream Klassen Streng Klasser som skall bli "envisa" Klassen Anstelld skall

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Tisdagen den 28 oktober 2014, 08:00-12:00

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Tisdagen den 28 oktober 2014, 08:00-12:00 DD2387 Programsystemkonstruktion med C++ Tentamen 1 Tisdagen den 28 oktober 2014, 08:00-12:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på båda sidor.

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Lektionsuppgifter. TDDI14 Objektorienterad programmering. Lektionsplanering Lektion Lektion Lektion

Lektionsuppgifter. TDDI14 Objektorienterad programmering. Lektionsplanering Lektion Lektion Lektion LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programvara och system Tommy Olsson 2014-02-05 Lektionsplanering.................................. 2 Lektion 1..........................................

Läs mer

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare Vad är en pekare? Varför använder vi pekare? Hur används pekare? Hur deklarerar vi pekare i C? Hur kommer vi åt pekarvärdet? DAVA07/08 JE,MG,MG,PS 2 DAVA07/08 JE,MG,MG,PS Vad är en pekare? En pekare är

Läs mer

Generell (template) programmering. Effektiv C++ Slutliga tips Genomgång av gammal tenta. Daniel Aarno Allt som fungerar som x ÄR x

Generell (template) programmering. Effektiv C++ Slutliga tips Genomgång av gammal tenta. Daniel Aarno Allt som fungerar som x ÄR x Generell (template) programmering Funktionsobjekt och funktionspekare Iteratorer Algoritmer Effektiv C++ Slutliga tips Genomgång av gammal tenta Daniel Aarno bishop@kth.se 2 int compare(int i1, int i2)

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering.

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering. KAPITEL 8 Klasser Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering. 169 Hittills: Enkel datatyp: double, int, char Operationer: förutbestämda, t ex +,

Läs mer

Övning 4. Arv och andra relationer

Övning 4. Arv och andra relationer Högskolan Dalarna Objektorienterad Analys & Konstruktion, 10p 1 Övning 4. Arv och andra relationer Stegvis förfining som programutvecklingsmetodik Det är mycket viktigt att du jobbar stegvis när du utvecklar

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Inledande programmering med C# (1DV402) Tärningarna ska kastas Tärningarna ska kastas Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Föreläsning 5-7 Operatoröverlagring

Föreläsning 5-7 Operatoröverlagring *:85/ID200V C++ HT07 Föreläsning 5-7 Operatoröverlagring Operatoröverlagring Följande operatorer kan inte överlagras: ::..*?: sizeof typeid Alla övriga operatorer kan överlagras. Följande operatorer måste

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Arv bakgrund (kap. 9)

Arv bakgrund (kap. 9) Föreläsning 4 Arv bakgrund (kap. 9) Hund pälsfärg favoritben smutsa_ned() ät_katt() Kanin pälsfärg slaktvikt smutsa_ned() Katt pälsfärg smutsa_ned() klös_soffa() Arv bakgrund Många klasser delar på egenskaper

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Föreläsning 4 Tillägg till C-syntaxen

Föreläsning 4 Tillägg till C-syntaxen *:85/ID200V C++ HT07 Föreläsning 4 Tillägg till C-syntaxen Några småsaker Resten-av-raden -kommentarer // (som i Java) Datatypen bool med värdena false och true, implicit kompatibel med int (d.v.s. int-värden

Läs mer

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa 2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många

Läs mer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2011-08-22 Tid: 14-18 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

Läs mer

Programmering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33

Programmering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33 Programmering i C++ EDA623 Typer EDA623 (Föreläsning 4) HT 2013 1 / 33 Typer Innehåll Heltalstyper Flyttalstyper Pekare Minnesallokering Funktionspekare Typdeklarationer med typedef Typomvandlingar (casting)

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Systemvetarutbildningen och dataekonomutbildningen

Systemvetarutbildningen och dataekonomutbildningen Visuell Programutveckling med C# Provmoment: Ladokkod: Tentamen ges för: Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2012-02-25 Tid: 09.30 14.30 Hjälpmedel: Inga hjälpmedel

Läs mer

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

Läs mer

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment: Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volafle, #define Arrayer av pekare, arrayer av arrayer Hemuppgi9er: v2. Föregående

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Innehåll. EDAf30: Programmering i C++, 7.5 hp. EDAf30: Programmering i C++, 7.5 hp Viktiga skillnader mot Java

Innehåll. EDAf30: Programmering i C++, 7.5 hp. EDAf30: Programmering i C++, 7.5 hp Viktiga skillnader mot Java Innehåll EDAF30 Programmering i C++ 1. Introduktion 1 Om kursen Sven Gestegård Robertz Datavetenskap, LTH 2016 2 Presentation av C++ Historik Inledning Datatyper och variabler 1. Introduktion 2/1 Viktiga

Läs mer