Generell (template) programmering. Effektiv C++ Slutliga tips Genomgång av gammal tenta. Daniel Aarno Allt som fungerar som x ÄR x
|
|
- Anders Nilsson
- för 7 år sedan
- Visningar:
Transkript
1 Generell (template) programmering Funktionsobjekt och funktionspekare Iteratorer Algoritmer Effektiv C++ Slutliga tips Genomgång av gammal tenta Daniel Aarno 2 int compare(int i1, int i2) return i1 < i2; class IntComparator public: int operator()(int i1, int i2) return i1 < i2; ; template<typename Func> int foo(func &f) return f(7,8); int main() int val = compare(5,78); //compare normal using function IntComparator comp; val = comp(67, 63); //compare using function object foo(*compare); //pass reference to function foo(comp); //pass reference to function object 4 Allt som fungerar som x ÄR x allt som fungerar som en iterator är en iterator allt som fungerar som en funktion är en funktion allt som fungerar som en behållare är en behållare Skriv funktioner så att de fungerar på allt som uppfyller konceptet för de objekt den opererar på Definera upp nya koncept där det behövs Måste vara generella (för att få bra abstraktion) Måste vara restrektiva (för effektiv implementation) 3
2 ostream& operator<<(ostream& os, const vector<t> &v) string sep = ""; ofstream *ofs = dynamic_cast<ofstream*>(&os); if(ofs!= 0) os << v.size(); sep = " "; for(typename vector<t>::const_iterator it = v.begin(); it!= v.end(); ++it) os << sep << *it; sep = " "; //C sorting function qsort void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *)); //Integer comparsion int int_comp(const void* a, const void* b) return *((const int*)a) < *((const int*)b); //Typedef of a function pointer typedef int (*comparator_t)(const void *, const void *); int main() const int nmemb = 12; int v[nmemb]; return os; //Sort array v using int_comp //(note int_comp is a function POINTER) qsort(v, nmemb, sizeof(int), int_comp); 6 //Use the typedef:ed type to store a pointer to a //function comparator_t mycomp = int_comp; qsort(v, nmemb, sizeof(int), int_comp); 5 istream& ReadVec(ifstream& is, vector<t> &outvec) int nmemb; is >> nmemb; outvec.clear(); istream_iterator<t> isi(is); copy(isi, istream_iterator<t>(), back_inserter (outvec)); return is; istream& operator>>(istream& is, vector<t> &outvec) ifstream *ifs = dynamic_cast<ifstream*>(&is); if(ifs!= 0) return ReadVec(*ifs, outvec); string line; getline(is, line); outvec.clear(); istringstream iss(line); T val; while(iss >> val) outvec.push_back(val); return is; 8 7
3 class A public: void foo() ; int main() int v[678]; sort(v, v + 678, greater<int>()); vector<int> iv(678); transform(v, v + 678, iv.begin(), v, plus<int>()); transform(v, v + 678, iv.begin(), bind2nd(plus<int>(),10)); ostream& operator<<(ostream& os, const vector<t> &v) ofstream *ofs = dynamic_cast<ofstream*>(&os); if(ofs!= 0) os << v.size() << ' '; copy(v.begin(), v.end(), ostream_iterator<t>(os, " ")); return os; vector<a> av(56); for_each(av.begin(), av.end(), mem_fun_ref(&a::foo)); void (A::*foo_func)(void) = &A::foo; A a; (a.*foo_func)(); Search time Performance test C Time (s) Language C++ Vector addition Primes computation O0 O1 O2 O3 Os JAVA Maxflow med noder och kanter Execution time (s) 12 11
4 Return by value Matrix operator+(const Matrix& a, const Matrix& b) Matrix c; Matrix& operator+(const Matrix& a, const Matrix& b) Matrix c; Matrix& operator+(const Matrix& a, const Matrix& b) Matrix *c = new Matrix; Undvik temporära objekt Använd initialiseringslista Undvik return-by-value Var noggran med iteratorer Använd std funktioner, algoritmer etc Optimera där det hjäper Matrix& operator+(const Matrix& a, const Matrix& b) static Matrix c; void add(const Matrix &a, const Matrix &b, Matrix dest) struct Student string name; string addr; ; string FindAddr(list<Student> l, string name for(list<student>::iterator i = l.begin(); i!= l.end(); i++) if(*i == name) return i->addr; return ; Finn 5 fel Template <typename T> void foo(u &a, U &b) cout << foo() << endl; Template <typename T> void bar(const U &a, const U &b) cout << bar() << endl; int main () int i = 2; char c = 'a'; foo<int>(i,c); //< will not compile because temporary //< objects may not be changed bar<int>(i,c); //< compiles OK 16 15
5 struct Student string name; string addr; ; struct Student string name; string addr; ; Ej const& const string& FindAddr(const list<student> &l, const string &name static const string dummy; for(list<student>::const_iterator i = l.begin(); i!= l.end(); ++i) if(i->name == name) return i->addr; return dummy; string FindAddr(list<Student> l, string name) for(list<student>::iterator i = l.begin(); i!= l.end(); i++) if(*i == name) return i->addr; return ; ++i är snabbare i->name class Guvernor string knowledge; //... ; class Actor : public Governor string lines; //... Actor& operator=(const Actor &a) if(this!= &a) lines = a.lines; //DOH! knowledge is not copied ; //This is the fix Actor& Actor::operator=(const Actor &a) Guvernor::operator=(a); //OK if operator= is not virtual (but it should be) //*(static_cast<guvernor*>(this)) = a; class NameEq const string &m_name; public: NameEq(const std::string &nam) : m_name(nam) bool operator()(const Student& s) return s.name == m_name; ; const string& FindAddr(const list<student> &l, const string &name static const string dummy; list<student>::const_iterator it = find_if(l.begin(), l.end(), NameEq(name)); return it!= l.end()? *it : dummy; if(this!= &a) lines = a.lines; 20 19
6 Kan en iterator avrefereras? e.end() kan inte! Är iteratorn giltig, tex efter allokering av nytt minne, insättning eller borttagning från en container? Har ett iteratorpar giltigt intervall? Göm interna funktioner i tomt namespace Överlagra bara virtual Var noggrann med const, speciellt i bibliotekskod Skilj på ISA och HASA 21
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 merAlgoritmbiblioteket (STL) Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper, vilka har iteratorer.
Algoritmbiblioteket (STL) (f.d.) Standard Template Library Samlingstyper (containers) Algoritmer Funktionsobjekt Adaptrar Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper,
Läs mer2D1387, 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 merDel6 Strömmar Ämnesområden denna föreläsning:
2D1387, Programsystemkonstruktion med C++ 01/02 1 Del6 Strömmar Ämnesområden denna föreläsning: Utmatning till ostream och ostringstream Slide 1 Inmatning från istream och istringstream Överlagring av
Läs merProgramsystemkonstruktion med C++
Programsystemkonstruktion med C++ Övning 2 Daniel Aarno bishop@kth.se Översikt övning 2 Klasser Konstruktorer Destruktorer Arv Virtuella funktioner Abstrakta klasser Operatorer Templateklasser Templatefunktioner
Läs merTDIU20 - Objektorienterad programmering i c++ - föreläsning 4
TDIU20 - Objektorienterad programmering i c++ - föreläsning 4 Pontus Haglund Department of Computer and information science 1 Vad gjorde vi förra gången? Felhantering Operatorer Typkonvertering 2 Grundläggande
Läs merKapitel 4 - Mallar. Kapitel 4. Introduktion till mallar STL. 2D1387 Programsystemkonstruktion med C++ 1
Kapitel 4 Introduktion till mallar STL 2D1387 Programsystemkonstruktion med C++ 1 Kapitel 4 - Klassmallar, funktionsmallar och STL Funktionsmallar Klassmallar Mallar för medlemmar Specialisering Standardbiblioteket
Läs merKapitel 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 merKapitel 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 merTillämpad programmering
Tillämpad programmering C++ polymorfism overload, cast, ärvning, template Johan Montelius 1 polymorfism Att se och använda en variabel, ett objekt eller en funktion i olika former overload olika versioner
Läs merDel3 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 merInnehåll. Parametriserade typer. Klassmallar. Klassmallen Vektor Konstructor med std::initializer_list. Klassmallen Vektor Medlemsfunktioner
Innehåll EDAF30 Programmering i C++ 10. Generisk programmering. Mallar och funktionsobjekt Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Funktionsobjekt Mallar med variabelt antal argument 10. Generisk
Läs merInnehåll. 1 Funktionsmallar. 2 Pekare och konstanter. 3 Typomvandlingar. struct Name { string s; //... };
Innehåll EDAF30 Programmering i C++ 6. Typer, pekare och konstanter. 1 Sven Gestegård Robertz Datavetenskap, LTH 2016 2 Pekare och konstanter Operatorn -> Konstanter 3 Typomvandlingar 6. Typer, pekare
Läs merInnehåll. Exceptionella händelser (exceptions, undantag ) Felhantering Tre nivåer av felhantering: Nivå 2: exceptions (eller returvärde)
Innehåll EDAF30 Programmering i C++ 7. Felhantering. Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Felhantering Exceptions Exceptions och resurshantering Specifikation av exceptionella händelser Static
Läs merDD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på både fram- och
Läs merTentamen EDAF30 Programmering i C++
LUNDS TEKNISKA HÖGSKOLA 1(8) Institutionen för datavetenskap Tentamen EDAF30 Programmering i C++ 2016 05 13, 8.00 13.00 Hjälpmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna.
Läs merProgramsystem konstruktion med C++ (2D1387) Innehåll. övning 2 klasser och arv
Programsystem konstruktion med C++ (2D1387) övning 2 klasser och arv Ronnie Johansson rjo@nadakthse grupp 4 2003 09 25 Innehåll Klasskonstruktorer och initieringslistor Klassdestruktorer Åtkomstkontroll
Läs merTentamen EDAF30 Programmering i C++
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen EDAF30 Programmering i C++ 2016 01 11, 8.00 13.00 Hjälpmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna.
Läs merTillämpad programmering
Tillämpad programmering C++ objekt Johan Montelius 1 struct struct Person { string name; int age; ; Person p; p.name = Joe ; p.age = 42; cout
Läs merInnehåll. Datatyper Pekare, Arrayer och Referenser. Pekare. Pekare Syntax. Pekare Syntax, operatorerna * och & 5. Pekare och arrayer. Algoritmer.
Innehåll EDAF30 Programmering i C++ 5. Pekare och arrayer.. Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Pekare Semantik och syntax Operatorn -> Referenser 2 Arrayer Pekare och arrayer 3 Standardbibliotekets
Läs merProgrammering 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 merIntro till standardbiblioteket. Eric Elfving
Intro till standardbiblioteket Eric Elfving 1 Behållare (containers) 2 Iteratorer 3 Algoritmer 15 mars 2018 2 / 13 Bibliotekets behållare delas in i tre grupper: Sekevensbehålare (Sequence containers)
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Strömmar, externa filer och kommandoradsargument Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/32 Strömmar Kommandoradsargument Jämförelseoperatorer
Läs merProgrammering i C++ EDA623 Containerklasser och algoritmbibliotek. EDA623 (Föreläsning 10) HT 2013 1 / 33
Programmering i C++ EDA623 Containerklasser och algoritmbibliotek EDA623 (Föreläsning 10) HT 2013 1 / 33 Containerklasser och algoritmbibliotek Innehåll Containerklasser Klasserna vector och deque Iteratorer
Läs merDet 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 merInnehåll. Pekare Exempel
Innehåll EDAF30 Programmering i C++ Avslutning. Sammanfattning och frågor 1 Syntax, förklaringar Sven Gestegård Robertz Datavetenskap, LTH 2017 2 Stack-allokering Heap-allokering: new och delete 3 Avslutning.
Läs merProgrammering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29
Programmering i C++ EDA623 Mallar EDA623 (Föreläsning 12) HT 2013 1 / 29 Mallar Innehåll Klassmallar Funktionsmallar EDA623 (Föreläsning 12) HT 2013 2 / 29 Containerklasserna vector, deque och list utgör
Läs merCollections 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 merDD2387 Programsystemkonstruktion med C++ Tentamen 2
DD2387 Programsystemkonstruktion med C++ Tentamen 2 Måndagen den 10 november 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 merInnehåll. Pekare Exempel
Innehåll EDAF30 Programmering i C++ Avslutning. Sammanfattning och frågor 1 Syntax, förklaringar Sven Gestegård Robertz Datavetenskap, LTH 2016 2 Stack-allokering Heap-allokering: new och delete 3 Avslutning.
Läs merTentamen *:85/2I4123 C
DSV Sid 1(6) *:85/2I4123 Jozef Swiatycki 2006-01-21 Tentamen *:85/2I4123 C++ 2006-01-21 Denna tentamen består av fyra uppgifter som tillsammans kan ge maximalt 30 poäng. För godkänt resultat krävs minst
Läs merInnehåll. Resurshantering. Resource handles. Minnesallokering. Minnesallokering Exempel: allokering på stacken. 6. Resurshantering
Innehåll EDAF30 Programmering i C++ 6. Resurshantering Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Resurshantering Stack-allokering Heap-allokering: new och delete 2 Smarta pekare 3 Klasser, resurshantering
Läs merTentamen i TDP004 Objektorienterad Programmering Lösningsförslag
Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2009-04-15 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär
Läs merLektionsuppgifter. 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 merProgramsystemkonstruktion 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 merKapitel 3. Synlighet. Kapitel 3 - Klassanvändning, operatorer och pekare. Synlighet
Kapitel 3 Klassanvändning Operatorer Pekare Kapitel 3 - Klassanvändning, operatorer och pekare Vänner till klasser och funktioner Virtuella funktioner och polymorfi Abstrakta basklasser och strikt virtuella
Läs merOperatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )
TDDC76 PoD OH Föreläsning C++ 83 Operatoröverlagring endast operatorsymboler definierade i C++ kan överlagras + - * / % ^ & ~! > = += -= *= /= %= ^= &= = = < > = ==!= && ++ -- -> ->*, [ ]
Läs merTommy 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ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 19.
1(9) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 19. Denna tenta kommer att vara färdigrättad Må 22/8 och kan då hämtas på
Läs merInnehå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 merint (*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 merInnehåll. 1 Algoritmer. 2 Strömmar och filer. 3 Iteratorer. 1 Söka, räkna. 2 Jämföra, genomlöpa. 3 Generera nya data. 4 Kopiera och flytta element
Innehåll EDAF30 Programmering i C++ 5.. Strömmar och filer Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Standardbibliotekets algoritmer Insättningsiteratorer 2 Strömmar och filer Ström-klasser Filer
Läs merTDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 21 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 21 Internminne
Läs mer7 Templates och Exceptions
7 Templates och Exceptions I senare versioner av C++ har man infört templates eller typparametrisering och exceptions eller undantagshantering. Med hjälp av templates eller typparmetrisering kan man skriva
Läs mergrundlä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 merSynlighet. 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 merInnehåll. Klasserna vector och deque
Innehåll EDAF30 Programmering i C++ Standardbiblioteket: Datastrukturer och algoritmer Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Datastrukturer, containerklasser Sekvenser Insättning 2 Insättningsiteratorer
Läs merTDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 20 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 20 Internminne
Läs merInnehå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 merTDIU01 - 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 merInnehåll. Relationer mellan klasser Operatoröverlagring. Static-medlemmar. Const- och referensmedlemmar. Const medlemsfunktioner
Innehåll Relationer mellan klasser Operatoröverlagring Och lite diverse Repetition och frågor om tidigare delar Mer om klasser: const, referens, static, friend, explicit Mer om klasser: arv (är), composition
Läs merInnehåll. 1 Deklarationer, scope och livstid. 2 Användardefinierade typer. 4 In- och utmatning. 5 Operatoröverlagring. 6 namnrymder (namespace)
Innehåll EDAF30 Programmering i C++ 2. Användardefinierade typer Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Deklarationer, scope och livstid 2 Användardefinierade typer 3 Standardbibliotekets alternativ
Läs merInnehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer
Innehåll EDAF30 Programmering i C++ 8. Klasser; resurshantering och polymorfism Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Klasser 2 Operatorer 3 Klasser, resurshantering Rule of three Move semantics
Läs merTentamen EDAF30 Programmering i C++
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen EDAF30 Programmering i C++ 2017 04 20, 14:00 19:00 Hjälpmedel: En valfri C++-bok. Andra papper med anteckningar eller utskrifter är
Läs merTDIU01 Programmering i C++
TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista
Läs merTentamen Objektorienterad Programutveckling med C++
Tentamen Objektorienterad Programutveckling med C++ Datum 2001-06-08. Tid 14:30-19:30 Ordinarie Tentamen CD 5250 Ansvarig: Martin Skogevall Omtentamen CD 5250 Ansvarig: Daniel Flemström Omtentamen CD 5050
Läs merInnehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar
Innehåll EDAF30 Programmering i C++ 3. Mer om klasser. Funktionsanrop Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser pekaren this const för objekt och medlemmar Kopiering friend inline 2 Funktionsanrop
Läs merInnehåll. 1 Deklarationer, scope och livstid. 2 Användardefinierade typer. 4 Operatoröverlagring. 5 In- och utmatning. 6 namnrymder (namespace)
Innehåll EDAF30 Programmering i C++ 2. Användardefinierade typer Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Deklarationer, scope och livstid 2 Användardefinierade typer 3 Standardbibliotekets alternativ
Läs merProgrammering 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 merHögskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson
Högskolan Dalarna sid 1 av 5 Lösningsförslag till TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING 5p,för D2 1999-01-14 1. a) Systemavgränsningen är dokument som innehåller en kortfattad beskrivning av vad som
Läs merEtt 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 merEn klass behöver både deklaration och definition. Daniel Aarno Globala funktioner och variabler är OK.
2 1 0 / ) - & 9 > ; 7 * ( ) ) En klass behöver både deklaration och definition Deklaration i h (hh) och definition i cc (cpp) Private är förvalt Student::learn() Student::Student() Student::~Student()
Läs merDD2387 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 merTentamen 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 merInlämningsuppgift, EDAF30, 2016
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programmering i C++ Inlämningsuppgift, EDAF30, 2016 1 Anvisningar för redovisning Inlämningsuppgifterna ska redovisas med en kort rapport och de
Läs merTentamen C++-programmering
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen C++-programmering 2016 03 19, 8.00 13.00 Hjälpmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna. Du ska i
Läs merTDP004. Minne och pekare. Eric Elfving Institutionen för datavetenskap
TDP004 Minne och pekare Eric Elfving Institutionen för datavetenskap 1 / 23 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 23 Internminne - RAM Datorns internminne (RAM,
Läs merTDIU20 - Objektorienterad programmering i c++ - föreläsning 3
TDIU20 - Objektorienterad programmering i c++ - föreläsning 3 Pontus Haglund Department of Computer and information science 1 Vad har vi gjort hittills 2 Felhantering 3 Operatorer 4 binära operatorer 5
Läs merEtt problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..
Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private
Läs merLänkade strukturer. (del 2)
Länkade strukturer (del 2) Översikt Abstraktion Dataabstraktion Inkapsling Gränssnitt (Interface) Abstrakta datatyper (ADT) Programmering tillämpningar och datastrukturer 2 Abstraktion Procedurell abstraktion
Läs merStandard Template biblioteket, eller STL, är ett C++ bibliotek innehållande: STL tillhandahåller många grundläggande algoritmer och datastrukturer:
2 B CD D D D D L / Begreppen koncept modeller av koncept Hur iteratorer fungerar Vad man ska tänka på vid lagring av pekare till objekt i SL Vilka olika sätt finns det att lagra subklasser i SL Standard
Läs merExempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer
Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num
Läs merTentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr, 051019
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13. Denna tenta kommer att vara färdigrättad Må 24/10 och kan då hämtas på
Läs merTDIU01 - Programmering i C++, grundkurs
. TDIU01 - Programmering i C++, grundkurs Datalagring - poster och vektorer Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Poster 2/17 struct Book string title; string author; int pages; ;
Läs merInnehåll. Typomvandlingar (casting) Implicita Typomvandlingar. Typomvandlingar (type casts) Explicita, namngivna typomvandlingar (C++-11)
Innehåll EDAF30 Programmering i C++ 8. Typomvandlingar. Klasser: operatorer och polymorfism. 1 Typomvandlingar Sven Gestegård Robertz Datavetenskap, LTH 2017 2 Klasser Operatorer 3 Polymorfism och arv
Läs merÖvriga byggstenar. Övriga byggstenar. Några tips under programutveckling. Beroenden Pekare till funktioner Typkonvertering
Övriga byggstenar Beroenden Pekare till funktioner Övriga byggstenar Beroenden er Definitioners synlighet Funktionspekare Icke-medlemsfunktioner Medlemsfunktioner 2D1387 Programsystemkonstruktion med C++
Läs merProgramsystemkonstruktion 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 merSP: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 merInlämningsuppgift, EDAF30, 2018
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programmering i C++ Inlämningsuppgift, EDAF30, 2018 1 Anvisningar för redovisning Inlämningsuppgifterna ska redovisas med en kort rapport och de
Läs merTentamen EDAF30 Programmering i C++
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenska Tentamen EDAF30 Programmering i C++ 2016 08 16, 8.00 13.00 Hjälmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna. Du
Läs mer1 Namnkontroll (NameControl)
1 Namnkontroll (NameControl) När en ny variabel, ett objekt, en konstant o s v introduceras måste programmeraren namnge denna. Allting identifieras m h a namn. När ett program består av väldigt många komponenter
Läs merTentamen i DD2387 Programsystemkonstruktion med C++
Tentamen i DD2387 Programsystemkonstruktion med C++ Resultat: Datum: Tisdag 19 oktober 2010, 14-18 (rättning 18-19) sal: id: Hjälpmedel: En eller två valfria läroböcker om C++ Tid: 4 timmar Skriv inte
Läs merTDDC76 Programmering och datastrukturer
TDDC76 Programmering och datastrukturer Arv, polymorfi och objektorienterad programmering Oskar Holmström Institutionen för datavetenskap Agenda 1 Pekare 2 Arv 3 Statisk bindning 4 Polymorfi 5 Destruktorer
Läs merStandard Template Library STL. Behållarklasser
Standard Template Library STL Kärnan av STL utgörs av behållarklasser (containers, datasamlingar, collections...) och algoritmer för operationer på sekvenser av element. Utvecklad av Alexander Stepanov
Läs merC++ Objektorientering - Klasser. Eric Elfving Institutionen för datavetenskap
C++ Objektorientering - Klasser Eric Elfving Institutionen för datavetenskap 1 / 23 Återblick struct struct är bra att ha för att skapa aggregat - slå ihop flera data till en ny datatyp. Ett problem med
Läs merÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.
1(9) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13. Denna tenta kommer att vara färdigrättad Fr 28/1 och kan då hämtas på
Läs merFortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe
Fortsä'ning Pekare Ulf Assarsson Originalslides av Viktor Kämpe Pekare och Arrayer/VK 2 Pekare och Arrayer/VK 3 Förra föreläsningen Pekare Bll data Arrayer fix storlek och adress Dynamisk minnesallokering
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock
Läs merInnehåll. Konstruktorer vid arv Regler för basklassens konstruktor. Konstruktorer vid arv. Konstruktorer vid arv. Konstruktorer vid arv
Innehåll EDAF30 Programmering i C++ 9. Polymorfism och arv Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser Polymorfism och arv Konstruktorer och destruktorer Tillgänglighet Arv utan polymorfism
Läs merInnehåll. Typomvandlingar (casting) Implicita Typomvandlingar. Typomvandlingar (casting) Implicita Typomvandlingar
Innehåll EDAF30 Programmering i C++ 9. Polymorfism och arv Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Typomvandling 2 Klasser Polymorfism och arv Konstruktorer och destruktorer Tillgänglighet Arv
Läs merTDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merTDIU20 - Objektorienterad programmering i c++ - föreläsning 6
TDIU20 - Objektorienterad programmering i c++ - föreläsning 6 Pontus Haglund och Gustav L'estrade anpassade slides av Klas Arvidsson Department of Computer and information science 1 Arv (Specialisering)
Läs merInnehå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 merMinnestilldelning (allokering) och frigörande (avallokering) av minne
Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs mer2D1387 Programsystemkonstruktion med C++ Laboration 1: Grundläggande C++ 31 augusti 2005
2D1387 Programsystemkonstruktion med C++ Laboration 1: Grundläggande C++ 31 augusti 2005 I den här labben kommer du att lära dig att använda grundläggande C++ såsom klasser, loopar, variabler och minneshantering.
Läs merTDIU06 Programmering g.k. Laborationer LAB2. Vt1, Dessa laborationer ingår i examinationsmomentet LAB2 och ska göras i läsperiod Vt1.
LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system (SaS) Tommy Olsson 2006-08-31 TDIU06 Programmering g.k. Laborationer LAB2 Vt1, 2007 Dessa laborationer
Läs merTentamen Programmering fortsättningskurs DIT950
Tentamen Programmering fortsättningskurs Datum: 2015-03-17 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 G: 24-43 VG: 44-60 (max 60) Lärare:. Någon besöker ca 10.00
Läs merInnehå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 merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs mer