Component Object Model. Detlef Streitferdt Technische Universität Ilmenau. TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 1
|
|
- Helga Raske
- vor 8 Jahren
- Abrufe
Transkript
1 Komponentenmodelle Component Object Model Detlef Streitferdt Technische Universität Ilmenau TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 1
2 COM-Komponenten COM ist eine Vorgehensweise zur Entwicklung von und mit Komponenten... ein binärer Standard ( virtual methods, C++) Komponenten werden in Dyn amic Link Libraries eingebettet COM stellt API Funktionen zur Verfügung ( ole32.dll) Anforderungen an Komponenten Softwareeinheit Abgeschlossen und allein ausführbar Definierte Schnittstellen Universell einsetzbar Vollständige Dokumentation Microsoft COM SW-Bibliotheken virtuelle Methoden Binäres Format Eigenleistung TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 2
3 Schnittstellen (in C++) class Ix public: virtual void Fx()=0; virtual void Fy()=0; Schnittstelle Komponente Ix Implementierung class CA : public Ix public: virtual void Fx() cout << test1 ; virtual void Fy() cout << test2 ; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 3
4 Virtual Table pa vptr vtbl &Fx CA Fx &Fy Fy CA* pa=new CA();... pa->fx(); client interface Ix virtual void Fx()=0; virtual void Fy()=0; interface class CA : public Ix public: virtual void Fx().. virtual void Fy().. implementation TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 4
5 Beispielkomponente «interface» ILibrary AddNewUser(BSTR name, int userid) AddNewBook(BSTR title, int bookid) BorrowBook(int bookid, int userid) SearchBook(BSTR titel, int* bookid) SearchUser(BSTR name, int* userid) CLibrary -booklist : CObjList -userlist : CObjList -borrowlist : CObjList CLibrary() ~CLibrary() +AddNewUser(BSTR name, int userid) +AddNewBook(BSTR title, int bookid) +BorrowBook(int bookid, int userid) +SearchBook(BSTR titel, int* bookid) +SearchUser(BSTR name, int* userid) * * * Model_User Model_BorrowBook Model_Book -m_id : int -m_name : CString -m_booklist : CObjList* -m_user : ModelUser* -m_id : int -m_title : CString Model_User() ~Model_User() +SetID(userID:int) +GetID():int +SetName(name:CString) +GetName():CString 1 1 Model_BorrowBook() ~Model_BorrowBoook() +SetUser(user:Model_User*) +GetUserID():int +AddBook(book:Model_Book*) 1 * Model_Book() ~Model_Book() +SetID(bookID:int) +GetID():int +SetTitel(title:CString) +GetTitel():CString TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 5
6 IDL-Schnittstelle [ object, uuid(40fd9adf-1cd6-11d4-ae7f-0050da51826f),... ] interface ILibrary : IUnknown HRESULT AddNewBook([in] BSTR titel,[in] int bookid); HRESULT AddNewUser([in] BSTR username,[in] int userid); HRESULT BorrowBook([in] int bookid,[in] int userid); HRESULT SearchBook([in] BSTR title,[out] int* bookid); HRESULT SearchUser([in] BSTR name,[out] int* userid); ; Comp002.h Comp002.IDL MIDL.exe Comp002_i.c... TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 6
7 Initialisierung #include "..\comp002\comp002_i.c" #include "..\comp002\comp002.h"... ILibrary* pilib;... CoInitialize(NULL); HRESULT hr=::cocreateinstance( CLSID_Library, NULL, CLSCTX_INPROC, IID_ILibrary, (void**)&pilib); if(!succeeded(hr)) pilib = NULL; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 7
8 CLSID in der Windows Registry Jede Komponente ist in der Registry ver zeichnet ( DllRegisterServer, RegSrv.exe) Zuordnung ist: Class Identifier DLL-Datei TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 8
9 Nutzung der Komponentenschnittstelle //////////////////////////////////////////// // add a user to the library component // void CUseBuchKomponenteView::OnComponentAdduser()... BSTR name =(BSTR)(m_username.GetBuffer(20)); m_username.releasebuffer(); int id = atoi(dadduser.m_userid.getbuffer(20)); pilib->addnewuser(name,id);... TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 9
10 Neuen Bibliotheksnutzer anlegen STDMETHODIMP CLibrary::AddNewUser(BSTR username, int userid) CString tcstr((char*)username, strlen((char*)username)); if(userlist) Model_User *tuser = new Model_User(); tuser->setid(userid); tuser->setname(tcstr); userlist->addhead(tuser); return S_OK; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 10
11 Beispielprogramm mit Komponente TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 11
12 IUnknown HRESULT QueryInterface( REFIID iid, void ** ppv); ULONG AddRef(void); ULONG Release(void); TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 12
13 QueryInterface if (iid == IID_IUnknown) *ppv = static_cast<ix*>(this) ; else if (iid == IID_IX) *ppv = static_cast<ix*>(this) ; else if (iid == IID_IY) *ppv = static_cast<iy*>(this) ; else *ppv = NULL ; return E_NOINTERFACE ; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 13
14 Regeln für QueryInterface IUnknown ist eindeutig Reproduzierbar Selbstbezug ist möglich Wenn Ix Iy dann Iy Ix Aus Ix Iy & Iy Iz folgt Ix Iz TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 14
15 AddRef & Release ULONG CA::AddRef() return InterlockedIncrement(&m_cRef) ; ULONG CA::Release() if (InterlockedDecrement(&m_cRef) == 0) delete this ; return 0 ; return m_cref ; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 15
16 Dynamisches Binden Eine DLL exportiert Funktionen zur Erzeugung einer Komponente HRESULT hr=::cocreateinstance( CLSID_Library, NULL, CLSCTX_INPROC, IID_ILibrary, (void**)&pilib); Komponente wird über Kennung identifiziert Gewünschte Schnittstelle wird angegeben TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 16
17 Einbettung outer component Ix Iy inner component Iy class CA:public Ix, public Iy... virtual void Fx().. virtual void Fy() m_piy->fy();... HRESULT Init(); private: IY* m_piy; ; TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 17
18 Aggregation outer component Ix inner component Iy class CA:public Ix... virtual void Fx()..... HRESULT Init(); private: IUnknown* m_puinner; ;...QueryInterface(...)... else if (iid==iid_iy) return m_puinner->queryinterface(..);... TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 18
19 Aggregation Ix QueryInterface AddRef Release Fx Iy QueryInterface AddRef Release Fy Komponente A IUnknown Komponente B IUnknown delegating IUnknown non-delegating TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 19
20 Zusammenfassung ActiveX ActiveX-Dokument ActiveX-Control OLE-Dokument OCX-Steuerelement Einbettung/Verknüpfung Typbibliothek Automatisierung COM TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Komponentenmodelle 20
8.3 COM und DCOM (Microsoft)
8.3 COM und DCOM (Microsoft) Windows-Objekte: sprachunabhängiger, binärer Standard für Objektschnittstellen COM Component Object Model: sprachunabhängige Klassen als Binärcode in DLL- oder EXE-Dateien;
Mehr9.3 COM und DCOM (Microsoft )
9.3 COM und DCOM (Microsoft 1990-99) COM Component Object Model Binärcode-Konvention für Schnittstellen von Klassen (= Binärcode in DLL- oder EXE-Dateien), ansprechbar über lokale Fernaufrufe (in getrennten
Mehr4.4 COM+ mit Transaction Services als Beispiel eines OTM
4.4 COM+ mit Transaction Services als Beispiel eines OTM Was ist COM/COM+? COM+ Transaction Services Entwickeln von COM+-Applikationen Vergleich TUXEDO vs. COM+ Workshop Objekt-Transaktionsmonitore -1
Mehr4.4 COM+ mit Transaction Services als Beispiel eines OTM
4.4 COM+ mit Transaction Services als Beispiel eines OTM Was ist COM/COM+? COM+ Transaction Services Entwickeln von COM+-Applikationen Vergleich TUXEDO vs. COM+ Kapitel 4: Workshop COM+ 1 Was ist COM+?
MehrInhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6..
Inhalt 1. Motivation 2. COM Architektur IUnkown 3. COM Implementierung 4. Zusammenhang zu ATL 5. Beispiel COM Client/ Server 6..NET/ COM Interop ISum IMultiply Calculator IClassFactory 7. Beispiel.NET
MehrSeminar Komponentenorientierte Softwareentwicklung
Seminar Komponentenorientierte Softwareentwicklung Für : Herr Prof. Dr. Thiesing COM (DCOM, COM+) Von: Nurhan Duman MatrNr: 7037779 1 Inhaltsangabe Historie von COM/DCOM/COM+...S.3 Was ist COM (allgemeine
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 12. Januar 2018 Betriebssysteme / verteilte
MehrKAPITEL. Ernst Pfannenschmidt und Paul Watzlaw
KAPITEL 8 Ernst Pfannenschmidt und Paul Watzlaw Die Active Template Library Microsofts Komponentenmodell hat eine recht lange Vorgeschichte, die nicht nur durch den Wandel der Begriffe VBX, OCX, ActiveX
MehrEinführung in COM. 04.04.2006 Seite 1
Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006
MehrInhaltsverzeichnis. Teil I Grundlagen der Programmarchitektur... 1. Vorwort... XIII XV XVI XVI
Vorwort......................................................................... Vorwort der Autoren........................................................... Systemanforderungen für die CD zum Buch......................................
MehrAndreas Kosch. Software & Support $ > Verlag GmbH
Andreas Kosch Software & Support Verlag GmbH $ > Inhaltsverzeichnis I COM-GRUNDLAGEN 11 1 COM - COMPONENT OBJECT MODEL 13 1.1 WARUM? 13 1.2 DER COM-STECKBRIEF 16 2 CLIENT UND SERVER 18 2.1 BEGRIFFSBESTIMMUNG
MehrVortrag Grundlagen der COM-Programmierung
Schulungsdokument Vortrag Grundlagen der COM-Programmierung Konfigurationsidentifizierung (KI): CTB003202 Funktion Name Organisationseinheit Erstellung Mario Becker BDS Inhalt ➀ Funktionsweise von COM
MehrDas Component Object Model (COM)
Einführung in das Component Object Model unter Microsoft Windows Das Component Object Model (COM) Michael Puff mail@michael-puff.de 2010-03-26 Die erste Version dieses Dokumentes wurde im Rahmen einer
MehrApplication Frameworks and Componentware Wintersemester 2002/03. COM+ Entwicklungsschritte. In-Place Activation OSF DCE RPC 1992 DCOM 1996
OLE, DCOM und COM Die frühen Komponentenmodelle der Firma Microsoft COM+ Entwicklungsschritte Object Linking and Embedding (Compound Documents) In-Place Activation Clipboard 1987 OLE 1992 OLE 2 1993 MS
MehrWie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell
Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:
MehrMicrosoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber
Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrSoftware Reuse Sommer 2004. 5. OLE, DCOM und COM Die frühen. Komponentenmodelle der Firma Microsoft. Object Linking and Embedding (Compound Documents)
5. OLE, DCOM und COM Die frühen Komponentenmodelle der Firma Microsoft Peter Sturm Universität Trier COM+ Entwicklungsschritte Object Linking and Embedding (Compound Documents) In-Place Activation Clipboard
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
MehrSeite 1. Gliederung. Vereinfachtes Weltbild zu aktuellen Technologien. Kapitel 5 Komponententechnologien im Vergleich
Gliederung 1. Software-Komponenten: Grundlegende Begriffe 2. Systematischer Entwicklungsprozess für Komponenten-Software mit UML 3. Java-Komponenten-Technologien 3.1 JavaBeans-Technologie 3.2 Web-Komponenten
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrKommunikation. Björn und Georg
Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges
MehrClient/Server-Programmierung
lient/server-programmierung WS 2014/2015 etriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, üro: H- 8404 Stand: 15. Oktober 2015 etriebssysteme / verteilte Systeme
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrMapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
MehrSoftwareentwicklung mit Komponenten
Softwareentwicklung mit Komponenten Fachhochschule Gießen 20.10.1999 Dr. Burkhardt Renz Gliederung was sind unsere Ziele? Was ist eine Beispiele, Charakteristika, Technologien Wie funktioniert Ein konkretes
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrGrundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrDie verschiedenen Programmierparadigmen von C++ Software-Technik: Vom Programmierer zur erfolgreichen
Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik 5. Entwurf
Mehr1 Einsatz von Interfaces
kleiner kommunikation max@kleiner.com 1 Einsatz von Interfaces Zu was dienen eigentlich Interfaces in ObjectPascal? Dieses Leistungsmerkmal haben die Borländer zur Unterstützung von COM erschaffen (seit
MehrProf. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
MehrActiveX im Web-Browser
ActiveX im Web-Browser Vortrag von Jens Freisen zum Seminar 3D-Grafik im Web (Prof. Dr. Gitta Domik, Dipl. Inf. Frank Götz, WS 2002/2003) Übersicht ActiveX Was ist das überhaupt? historischer & technischer
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrVerteilte Systeme Übung
Verteilte Systeme Übung Tobias Distler, Klaus Stengel, Timo Hönig, Christopher Eibel, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrProgrammieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,
MehrÜberblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://download.oracle.com/javase/tutorial/reflect/index.html
MehrÜberblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html
MehrC++ - Objektorientierte Programmierung Polymorphie
C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrAndreas Kosch. COM/DCOM/COM+ mit Delphi
Andreas Kosch COM/DCOM/COM+ mit Delphi Software & Support Verlag GmbH Frankfurt, 2000 Inhaltsverzeichnis VORWORT 15 1 STANDORTBESTIMMUNG 17 1.1 DER URSPRUNG 17 1.2 WAS HABE ICH ALS ENTWICKLER VON COM?
MehrSeminar. Metamodellierung für modellgetriebene Softwareentwicklung mit MDA und UML
Seminar Metamodellierung für modellgetriebene Softwareentwicklung mit MDA und UML 1 A MOF 2.0 for Java Ein Meta-Modellierungswerkzeug für CMOF-basierte Modelle Andreas Blunk blunk@informatik.hu-berlin.de
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrStudienarbeit 01/01. Entwicklung eines COM-Automatisierungsservers als Bestandteil des Softwarewerkzeugs GO. cand. Ing.
Studienarbeit 01/01 Entwicklung eines COM-Automatisierungsservers als Bestandteil des Softwarewerkzeugs GO cand. Ing. Carsten Schu Erklärung Hiermit versichere ich, dass der vorliegende Text im Rahmen
MehrKomponentenmodelle II
Komponentenmodelle II DCOM / CORBA Detlef Streitferdt Technische Universität Ilmenau DCOM Architektur Client Proxy Stub Component CoCreateInstance Security Provider DCE RPC Protocol Stack Security Provider
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrAVO Übung 4. AspectIX. 18. Januar 2005 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik
Universität Ulm Fakultät für Informatik Abteilung Verteilte Systeme Projektgruppe AspectIX AVO Übung 4 AspectIX 18. Januar 2005 (WS 2004) Andreas I. Schmied (schmied@inf...) Quellcodes zur Übersichtlichkeit
MehrC++ Parent-Shared-Ptr. Detlef Wilkening
http://www.wilkening-online.de Seite 1 / 19 C++ Parent-Shared-Ptr Detlef Wilkening 14.01.2016 http://www.wilkening-online.de Seite 2 / 19 Shared-Ptr Kennt jeder Nutzt jeder Und das ist gut so Aber es gibt
MehrVererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
MehrAufbau eines "B-Baums" der Ordnung 3, Teil 1
Aufbau eines "B-Baums" der Ordnung 3, Teil 1 Leerer B-Baum der Ordnung 3. Insgesamt Platz für 3 Werte. + 100 100 + 50 50 100 + 150 50 100 150 Aufbau eines "B-Baums" der Ordnung 3, Teil 1 Leerer B-Baum
MehrMicrosoft Visual C++ 6.0
Hardwareinbindung in Matlab bild = Quickcam; figure;imshow(bildanzeige); MATLAB 6.1 void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray*prhs[] ) Microsoft Visual C++ 6.0 Aufruf int Capture(unsigned
MehrEntwurfsmuster Design Patterns by Erich Gamma et al.
Entwurfsmuster Design Patterns by Erich Gamma et al. Detlef Streitferdt Technische Universität Ilmenau TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Entwurfsmuster 1 Frühe Muster Christopher Alexander
MehrEinfach verkettete Liste
5. Listen Verkettete Listen Einfach verkettete Liste Für jedes einzelne Element der Liste wird ein Hilfsobjekt erzeugt. Jedes Hilfsobjekt enthält zwei Instanzvariablen: den zu speichernden Wert bzw. einen
MehrDie Alternative zum Web-Form Modell
Marc André Zhou Solution Architect www.dev -sky.net www.just -sp.net Die Alternative zum Web-Form Modell dotnet Cologne 03.05.2013 Agenda Web Forms vs. MVC ASP.NET MVC Features Web API ODATA Eine ASP.NET
MehrOracle & Java HOW TO
Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau
MehrCloud4E. OCCI-Service-Framework. Stand: 29. Mai 2014
Cloud4E OCCI--Framework Stand: 29. Mai 2014 Cloud4E Ziele Flexible, cloud-basierte Simulationsumgebungen für mittelständische Unternehmen Definition und Umsetzung eines Software-Stacks zur Portierung bestehender
Mehr10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)
10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung
MehrBetriebssysteme: Konzepte, Dienste, Schnittstellen (Betriebssysteme und betriebssystemnahe Programmierung)
BERGISCHE UNIVERSITÄT WUPPERTAL GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de Fachbereich C MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
Mehr1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI
1 Motivation Motivation ierte Objektmodel Standard Middleware für objektorientierte Anwendungen CORBA,.NET-Remoting Java Remote Method Invocation (RMI) Java RMI ierte Objekte undjava RMI Zusammenfassung
MehrBeispiel: die Klasse Brüche
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -138 Beispiel: die Klasse Brüche class Fraction { int num; Int denom; // numerator // denominator Fraction (int n, int d) { num =
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Gottwald und Stefan Röhrl 8 Mai 2019 IDE - Integrated Development Environment
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH
MehrKlassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
MehrVerteidigung Großer Beleg
Verteidigung Großer Beleg Die GoF-Entwurfsmuster in Java Corinna Herrmann ch17@inf.tu-dresden.de Gliederung 1. Aufgabenstellung 2. Entwurfsmuster 3. Verwandte Arbeiten 4. Beispiele: 4.1. Adapter 4.2. Flyweight
MehrWas der Mathematiker Gauß nicht konnte, das können wir Prof. R. Zavodnik/C++ Vorlesung/Kapitel IX 1
Was der Mathematiker Gauß nicht konnte, das können wir 16.01.2003 Prof. R. Zavodnik/C++ Vorlesung/Kapitel IX 1 friend Klassenmethoden können friend-funktionen anderer Klassen werden Ganze Klassen können
MehrDB-Aspekte des E-Commerce Schwerpunkt: Techniken. Servlets und JavaServer Pages
Seminar DB-Aspekte des E-Commerce Schwerpunkt: Techniken Servlets und JavaServer Pages Boris Stumm Servlets und JavaServer Pages 1 Inhalt Einführung Technologie der Servlets und JavaServer Pages Umgebung
MehrKlausur: Programmieren II
Klausur: Programmieren II Diplomstudiengang Allgemeine Informatik SS07 Erlaubte Hilfsmittel: dokumentenechter Stift. Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrJavaBeans Property-Editoren und Customizer
JavaBeans Property-Editoren und Customizer J. Heinzelreiter WS 2004/05 Property-Editoren Builder Tools beinhalten Standard-Editoren für Zahlen (ganze Zahlen, Gleitkommazahlen), Strings, Auswahl von Fonts,
Mehr2.2 Spezifikation abstrakter Datentypen. 2.3 Implementierung und Anwendung von ADT. 2.4 Datenabstraktion und Objektorientierung
Inhaltsverzeichnis (update) 2 Datenabstraktion 2.1 Begriffe 2.2 Spezifikation abstrakter Datentypen 2.2.1 Algebraische Spezifikation 2.2.2 Modellierende Spezifikation 2.3 Implementierung und Anwendung
Mehr5. Behälter und Iteratoren. Programmieren in C++ Überblick. 5.1 Einleitung. Programmieren in C++ Überblick: 5. Behälter und Iteratoren
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren in C++ Überblick
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrBildverarbeitung mit C++
Bildverarbeitung mit C++ Lösung zum Übungsblatt 2 Dr. Stefan Florczyk 2003 #include #include class camera char* name; double abmessungen[3]; // Array zum Abspeichern von // Höhe,
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrKomponentenbasierte Softwareentwicklung
Komponentenbasierte Softwareentwicklung Thema: COM /.Net Interop Datum: 27.11.2006 Student: (291608) Seite 1 Inhaltsverzeichnis 1Einleitung... 3 2Architektur...4 2.1COM Runtime...4 2.2COM Objekte...4 2.3Server...4
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung
Marko Apfel, Team Entwicklung Agenda Was ist COM Was sind die ArcObjects Warum Delphi mit ArcObjects Wie greift man auf die ArcObjects mit Delphi zu Wo gibt es Informationen 2 Agenda Was ist COM Was sind
MehrSchnittstellenbasierte Programmierung
GO TO COM ISBN 3-873-678- Schnittstellenbasierte Programmierung Kapitelüberblick. Einführung 56. Ein neues Programmierparadigma: Die Schnittstelle 56.3 Virtueller Methodenaufrufmechanismus in C++ 57.3.
Mehr