Constructor, Destructor, Accessibility and Virtual Functions
|
|
- Randell Cook
- 7 years ago
- Views:
Transcription
1 Constructor, Destructor, Accessibility and Virtual Functions VL Objektorientierte Programmierung Raimund Kirner Mitwirkung an Folienerstellung: Astrit Ademaj
2 Agenda Constructor Destructors this pointer Inheritance / Accessibility Virtual functions
3 Class A class consists of: member data (usually private) member functions (usually public) the simplest class shall have at least two member functions: set data show data member data can be public, and member functions can be private
4 Member data initialization After an object is created: Standard ways for data initialization: Setting default constants Reading input from user (using cin >>)
5 Member data initialization - example class circle private: int xc, yc, radius ; void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); int main() circle c1, c2; c1.set (15, 17, 8); c2.get (); c1.draw(); c2.draw()
6 Member data initialization during the object instantiation use a special member function called CONSTRUCTOR (ctor)
7 Constructor Constructor is a member function that has the same name as the class To use a constructor it has to be declared public Constructor can be used to initialize data members of a class Is called automatically when an object of the class is created (instantiated)
8 Constructor - example class circle private: int xc, yc, radius ; circle() xc = 25 ; yc = 25 ; radius = 5; void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); int main() circle c1, c2; c1.set (15, 17, 8); c1.draw(); c2.draw()
9 Constructor Last example shows the constructor - i.e, the constructor that takes no arguments either due to All parameters have default values (showed in the example), or No parameters are required Constructor does not return a value (void) to whom should it!? int main() circle c1; // default ctor will be executed int main() circle c1(); /* declaration of function c1() that has a circle-object as return value */
10 Constructor If no constructor is defined, a compiler generates one: default constructor if you don t care how data are being initialized If user defines a no-argument constructor member data are initialized using the no-argument constructor
11 Initializer List class circle private: int xc, yc, radius ; circle() : xc(25), yc(25), radius(5) /* empty body */ void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () Initialization takes place before the function body Members initialized in the initializer list and initialized before the constructor is executed Why not initialize members in constructor body? draw_circle(xc, yc, radius); const member data initialization
12 Constructor with parameters class circle private: int xc, yc, radius ; circle( int x, int y, int r) : xc (x), yc(y), radius(r) /* empty body */ void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); int main() circle c1(15,25,10); c1.draw();
13 Constructor overloading A class can have more than 1 constructor Overloaded constructors shall have different parameter lists circle(); circle (int x, int y, int r);
14 Constructor overloading class circle private: int xc, yc, radius ; circle() : xc(25), yc(25), radius(5) circle( int x, int y, int r) : xc (x), yc(y), radius(r) void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); overloading Only one default constructor is allowed int main() circle c1(15,25,10); circle c2; c1.draw(); c2.draw();
15 Member function overloading Non-constructor member functions can also be overloaded set (int x, int y, int r) set (int x, int y) Must have unique parameter lists (as with constructors)
16 Member function overloading class circle private: int xc, yc, radius ; circle() : xc(25), yc(25), radius(5) void set (int x, int y, int r) xc = x; yc = y; radius = r; void set (int x, int y) xc = x; yc = y void draw () draw_circle(xc, yc, radius); overloading int main() circle c1; c1.set(15,15,10); c1.draw(); c1.set(20,20); c1.draw();
17 Data Initialization No-argument constructor - initialize with constant Constructor with arguments Useful feature Initialize the data with another object of the same type Default Copy Constructor need not to be created (its for free ) a constructor which takes one object as argument
18 Copy Constructor class circle private: int xc, yc, radius ; circle() : xc(25), yc(25), radius(5) circle( int x, int y, int r) : xc (x), yc(y), radius(r) void set (int x, int y, int r) xc = x; yc = y; radius = r; void get () cout << \Enter x coordinate: ; cin >> xc; cout << \Enter y coordinate: ; cin >> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); int main() circle c1(15,25,10); circle c2(c1); circle c3 = c1; c1.draw(); c2.draw(); c3.draw();
19 Destructors Public member function automatically called when an object is deleted (e.g., when the program finishes) Destructor name is ~classname, e.g., ~circle It has no return type (to whom?) and takes no arguments Only 1 destructor is allowed per class it cannot be overloaded, as it does not take arguments
20 Destructors class circle private: int xc, yc, radius, ID *ncolour; ~circle () delete ncolour; cout << Deleting circle with ID: << ID << \n ; void set (int x, int y, int r, int circlecolour) xc = x; yc = y; radius = r; *ncolour= circlecolour circle( int x, int y, int r, int id) : xc (x), yc(y), radius(r), ID(id) ncolour = new int; void draw () draw_circle(xc, yc, radius, ncolour); int main() circle c1(15,25,10,1); circle c2(15,15,10,2); cout << -- end ---\n ; --- end --- Deleting circle with ID: 2 Deleting circle with ID: 1
21 Copy Constructors Take care when a class uses pointers Copy constructor initializes the pointers ending up pointing into the same memory (defined by the old class) When the old class destroys the memory by using the destructor the new class will still have a pointer to that memory. Solution: create its own copy constructor and allocate the memory as required.
22 Copy constructor class circle private: int xc, yc, radius, ID, *ncolour; ~circle () delete ncolour; cout << Deleting circle with ID: << ID << \n ; int GetColour() return * ncolour ; circle( int x, int y, int r, int id) : xc(x), yc(y), radius(r),id(id) ncolour = new int; void draw () draw_circle(xc, yc, radius, ncolour); circle (circle & tmpcircle ) ncolour = new int; ncolour = tmpcircle.getcolour();
23 Copy constructor Copy constructor required to use reference parameters, and therefore it will have access to their argument s data The purpose is to make a copy of the argument, no reason the constructor should modify the argument s data Thus, specify the keyword const in the parameter list circle (const circle & tmpcircle )
24 this pointer The this pointer points to the class object instance by the member function. Hidden object parameter for each member function All member data and member functions can be accessed using the this pointer
25 this pointer Can be used to compare a particular object with the member function of the object being executed. Can be used to access members that may be hidden by parameters with the same name.
26 this pointer class circle private: int xc, yc, radius ; circle() : xc(25), yc(25), radius(5) /* empty body */ void set (int xc, int yc, int radius) this->xc = xc; this->yc = yc; this->radius = radius; void get () cout << \Enter x coordinate: ; cin >> this-> xc; cout << \Enter y coordinate: ; cin >> this-> yc; cout << \Enter radius : ; cin >> radius; void draw () draw_circle(xc, yc, radius); No difference between the cin >> this-> xc; and cin >> xc;
27 Accessibility Private - only within the class Protected - within the class and the derived class Public open (not protected) and accessible from everywhere in the program
28 Inheritance class grafobject protected: int xc, yc; grafobject() xc(25), yc(25) cout << GRAFOBJECT constructor ; void set (int x, int y) xc = x; yc = y; class circle : public grafobject private: int radius ; circle () radius(5) cout << CIRCLE constructor ; class cannot invoke private members from base class derived base class class Inheritance don t work in reverse. Base class do not know about the members from the classes that are derived from the base class.
29 Inheritance: Constructor and Destructors class grafobject protected: int xc, yc, ncolour; grafobject():xc(25), yc(25) cout << GRAFOBJECT constructor ; ~grafobject() cout << GRAFOBJECT destructor ; void set (int x, int y) void linecolour (int ncolour) cout << Set GRAFOBJECT colour ; class circle : public grafobject private: int radius ; circle (): radius(5) cout << CIRCLE constructor ; ~circle () cout << CIRCLE destructor ; void draw() void linecolour (int ncolour) cout << Set Circle colour ; int main() circle c1 ; c1.draw(); cout << -- end ---\n ; GRAFOBJECT constructor CIRCLE constructor --- end --- CIRCLE destructor GRAFOBJECT destructor
30 Derived class constructor class grafobject protected: int xc, yc; grafobject() : xc(15), yc(15) grafobject(int x, int y) : xc(x), yc(y) class circle : public grafobject privat: int radius; circle() : grafobject() radius = 0; Overloaded constructors in the base class impose overloaded constructors in the derived class Calling constructor from the initialization list. circle (int x, int y, int r) : grafobject(x,y) radius = r;
31 Calling the base method from overridden method class grafobject protected: int xc, yc, ncolour; grafobject():xc(25), yc(25) cout << GRAFOBJECT constructor ; ~grafobject() cout << GRAFOBJECT destructor ; void set (int x, int y) void setlinecolour (int ncolour) cout << Set GRAFOBJECT colour ; class circle : public grafobject private: int radius ; circle (): radius(5) cout << CIRCLE constructor ; ~circle () cout << CIRCLE destructor ; void draw() void setlinecolour (int ncolour) cout << Set Circle colour ; Override (overwrite): crate a method in a derived class that has the same name and the same signature as the method in the base class. int main() circle c1; c1.setlinecolour(255); c1.draw(); c1.grafobject::setlinecolour(125); cout << --- end ---\n ;
32 Pointers to member function class Base void show() cout << Show Base class ; class Derived1 : public Base void show() cout << Show Derived 1 class ; class Derived2 : public Base void show() cout << Show Derived 2 class ; int main() Derived1 d1; Derived2 d2; Base *pobj pobj = & d1; *pobj->show(); pobj = & d2; *pobj->show(); Show Base class Show Base class Compiler does not complain because the member functions are type-compatible and selects the function that matches the type.
33 Virtual Functions Used to override member functions Calling a function in one class may call a function in another class Enables an execution of different functions by using the same function name - POLIMORPHYSMUS
34 Virtual Functions class Base virtual void show() cout << Show Base class ; class Derived1 : public Base void show() cout << Show Derived 1 class ; class Derived2 : public Base void show() cout << Show Derived 2 class ; int main() Derived1 d1; Derived2 d2; Base *pobj pobj = & d1; *pobj->show(); pobj = & d2; *pobj->show(); Show Derived 1 class Show Derived 2 class Compiler selects the function that matches the content (and not only the type)
35 Virtual Destructors Usually destructors are used to free memory (delete) If destructor is not declared virtual - only the memory of the base class is destroyed Base class destructors should be virtual The destructors of the derived class are called
36 Non-Virtual Destructors class Base virtual void show() cout << Show Base class ; ~Base () cout << Base destroyed ; class Derived1 : public Base void show() cout << Show Derived 1 class ; ~ Derived1 () cout << Derived 1 destroyed ; int main() Base *pbase = new Derived delete pbase ; return 0; Base destroyed
37 Virtual Destructors class Base virtual void show() cout << Show Base class ; virtual ~Base () cout << Base destroyed ; class Derived1 : public Base void show() cout << Show Derived 1 class ; ~ Derived1 () cout << Derived 1 destroyed ; int main() Base *pbase = new Derived delete pbase ; return 0; Derived 1 destroyed Base destroyed
38 Literature for further reading: Object-oriented programming in C++ Robert Lafore Teach yourself C++ in 21 Days Jasse Liberty C++ Master Class Andre Willms
13 Classes & Objects with Constructors/Destructors
13 Classes & Objects with Constructors/Destructors 13.1 Introduction In object oriented programming, the emphasis is on data rather than function. Class is a way that binds the data & function together.
More informationCIS 190: C/C++ Programming. Polymorphism
CIS 190: C/C++ Programming Polymorphism Outline Review of Inheritance Polymorphism Car Example Virtual Functions Virtual Function Types Virtual Table Pointers Virtual Constructors/Destructors Review of
More informationPolymorphism. Problems with switch statement. Solution - use virtual functions (polymorphism) Polymorphism
Polymorphism Problems with switch statement Programmer may forget to test all possible cases in a switch. Tracking this down can be time consuming and error prone Solution - use virtual functions (polymorphism)
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationOBJECT ORIENTED PROGRAMMING AND DATA STRUCTURES CONSTRUCTORS AND DESTRUCTORS
CONSTRUCTORS AND DESTRUCTORS Constructors: A constructor is a member function whose name is same as class name and is used to initialize data members and allocate memory dynamically. A constructor is automatically
More informationPART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
More informationC++FA 5.1 PRACTICE MID-TERM EXAM
C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer
More informationIntroduction to C++ Introduction to C++ Week 7 Dr Alex Martin 2013 Slide 1
Introduction to C++ Introduction to C++ Week 7 Dr Alex Martin 2013 Slide 1 Introduction to Classes Classes as user-defined types We have seen that C++ provides a fairly large set of built-in types. e.g
More informationCpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing
CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects
More informationStorage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
More informationC++ Overloading, Constructors, Assignment operator
C++ Overloading, Constructors, Assignment operator 1 Overloading Before looking at the initialization of objects in C++ with constructors, we need to understand what function overloading is In C, two functions
More informationBCS2B02: OOP Concepts and Data Structures Using C++
SECOND SEMESTER BCS2B02: OOP Concepts and Data Structures Using C++ Course Number: 10 Contact Hours per Week: 4 (2T + 2P) Number of Credits: 2 Number of Contact Hours: 30 Hrs. Course Evaluation: Internal
More informationMultichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is
Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is preceded by an equal sign d. its name has undereline 2. Associations
More informationCS193D Handout 06 Winter 2004 January 26, 2004 Copy Constructor and operator=
CS193D Handout 06 Winter 2004 January 26, 2004 Copy Constructor and operator= We already know that the compiler will supply a default (zero-argument) constructor if the programmer does not specify one.
More informationAdvanced Data Structures
C++ Advanced Data Structures Chapter 8: Advanced C++ Topics Zhijiang Dong Dept. of Computer Science Middle Tennessee State University Chapter 8: Advanced C++ Topics C++ 1 C++ Syntax of 2 Chapter 8: Advanced
More information17. Friendship and Inheritance
- 117 - Object Oriented Programming: 17. Friendship and Inheritance Friend functions In principle, private and protected members of a class cannot be accessed from outside the same class in which they
More informationCh 7-1. Object-Oriented Programming and Classes
2014-1 Ch 7-1. Object-Oriented Programming and Classes May 10, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497;
More informationDescription of Class Mutation Mutation Operators for Java
Description of Class Mutation Mutation Operators for Java Yu-Seung Ma Electronics and Telecommunications Research Institute, Korea ysma@etri.re.kr Jeff Offutt Software Engineering George Mason University
More information1. Polymorphism in C++...2
1. Polymorphism in C++...2 1.1 Polymorphism and virtual functions... 2 1.2 Function call binding... 3 1.3 Virtual functions... 4 1.4 How C++ implements late binding... 6 1.4.1 Why do I have to know at
More informationEP241 Computer Programming
EP241 Computer Programming Topic 10 Basic Classes Department of Engineering Physics University of Gaziantep Course web page www.gantep.edu.tr/~bingul/ep241 Sep 2013 Sayfa 1 Introduction In this lecture
More informationDelegating Constructors (revision 3)
Doc No: SC22/WG21/N1986 J16/06 0056 Date: 2006 04 06 Project: JTC1.22.32 Reply to: Herb Sutter Francis Glassborow Microsoft Corp. Association of C & C++ Users 1 Microsoft Way 64 Southfield Road Redmond
More informationCurriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
More informationCSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
More informationCISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
More informationObject Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More information1.1.3 Syntax The syntax for creating a derived class is very simple. (You will wish everything else about it were so simple though.
Stewart Weiss Inheritance is a feature that is present in many object-oriented languages such as C++, Eiffel, Java, Ruby, and Smalltalk, but each language implements it in its own way. This chapter explains
More information1 bool operator==(complex a, Complex b) { 2 return a.real()==b.real() 3 && a.imag()==b.imag(); 4 } 1 bool Complex::operator==(Complex b) {
Operators C and C++ 6. Operators Inheritance Virtual Alastair R. Beresford University of Cambridge Lent Term 2008 C++ allows the programmer to overload the built-in operators For example, a new test for
More informationJava Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
More informationC++ Crash Kurs. C++ Object-Oriented Programming
C++ Crash Kurs C++ Object-Oriented Programming Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer C++ classes A class is user-defined type
More informationEl Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationAn Internet Course in Software Development with C++ for Engineering Students
An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This
More informationCompile-time type versus run-time type. Consider the parameter to this function:
CS107L Handout 07 Autumn 2007 November 16, 2007 Advanced Inheritance and Virtual Methods Employee.h class Employee public: Employee(const string& name, double attitude, double wage); virtual ~Employee();
More informationEmbedded SQL. Unit 5.1. Dr Gordon Russell, Copyright @ Napier University
Embedded SQL Unit 5.1 Unit 5.1 - Embedde SQL - V2.0 1 Interactive SQL So far in the module we have considered only the SQL queries which you can type in at the SQL prompt. We refer to this as interactive
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Test #1 Next Thursday During Class Cover through (near?) end of Chapter 5 Objectives Learn about linked lists Become aware of the basic properties of
More informationAppendix K Introduction to Microsoft Visual C++ 6.0
Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):
More informationMS Visual C++ Introduction. Quick Introduction. A1 Visual C++
MS Visual C++ Introduction 1 Quick Introduction The following pages provide a quick tutorial on using Microsoft Visual C++ 6.0 to produce a small project. There should be no major differences if you are
More informationSoftware Engineering Concepts: Testing. Pointers & Dynamic Allocation. CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009
Software Engineering Concepts: Testing Simple Class Example continued Pointers & Dynamic Allocation CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009 Glenn G. Chappell Department
More informationSubject Name: Object Oriented Programming in C++ Subject Code: 2140705
Faculties: L.J. Institute of Engineering & Technology Semester: IV (2016) Subject Name: Object Oriented Programming in C++ Subject Code: 21405 Sr No UNIT - 1 : CONCEPTS OF OOCP Topics -Introduction OOCP,
More informationClass 16: Function Parameters and Polymorphism
Class 16: Function Parameters and Polymorphism SI 413 - Programming Languages and Implementation Dr. Daniel S. Roche United States Naval Academy Fall 2011 Roche (USNA) SI413 - Class 16 Fall 2011 1 / 15
More informationObject-Oriented Programming Lecture 2: Classes and Objects
Object-Oriented Programming Lecture 2: Classes and Objects Dr. Lê H!ng Ph"#ng -- Department of Mathematics, Mechanics and Informatics, VNUH July 2012 1 Content Class Object More on class Enum types Package
More informationPractical Programming Methodology. Michael Buro. Class Inheritance (CMPUT-201)
Practical Programming Methodology (CMPUT-201) Lecture 16 Michael Buro C++ Class Inheritance Assignments ctor, dtor, cctor, assignment op. and Inheritance Virtual Functions Class Inheritance Object Oriented
More informationChapter 5 Functions. Introducing Functions
Chapter 5 Functions 1 Introducing Functions A function is a collection of statements that are grouped together to perform an operation Define a function Invoke a funciton return value type method name
More informationKonzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
More informationClasses and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
More informationMore C++ Concepts. Operator overloading Friend Function This Operator Inline Function
More C++ Concepts Operator overloading Friend Function This Operator Inline Function 1 Review There are different types of member functions in the definition of a class Accessor int Str :: get_length();
More informationFunction Overloading I
Function Overloading I we can overload functions on their arguments like so: void foo (int iarg) { cout
More informationOpenCL Static C++ Kernel Language Extension
OpenCL Static C++ Kernel Language Extension Document Revision: 04 Advanced Micro Devices Authors: Ofer Rosenberg, Benedict R. Gaster, Bixia Zheng, Irina Lipov December 15, 2011 Contents 1 Overview... 3
More informationIS0020 Program Design and Software Tools Midterm, Feb 24, 2004. Instruction
IS0020 Program Design and Software Tools Midterm, Feb 24, 2004 Name: Instruction There are two parts in this test. The first part contains 50 questions worth 80 points. The second part constitutes 20 points
More informationCourse notes Standard C++ programming
Department of Cybernetics The University of Reading SE2B2 Further Computer Systems Course notes Standard C++ programming by Dr Virginie F. Ruiz November, 03 CREATING AND USING A COPY CONSTRUCTOR... 27
More informationC++ DATA STRUCTURES. Defining a Structure: Accessing Structure Members:
C++ DATA STRUCTURES http://www.tutorialspoint.com/cplusplus/cpp_data_structures.htm Copyright tutorialspoint.com C/C++ arrays allow you to define variables that combine several data items of the same kind
More informationC++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
More informationClasses and Pointers: Some Peculiarities (cont d.)
Classes and Pointers: Some Peculiarities (cont d.) Assignment operator Built-in assignment operators for classes with pointer member variables may lead to shallow copying of data FIGURE 3-22 Objects objectone
More informationThe C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
More informationLinked List as an ADT (cont d.)
Linked List as an ADT (cont d.) Default constructor Initializes list to an empty state Destroy the list Deallocates memory occupied by each node Initialize the list Reinitializes list to an empty state
More informationAn Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationexplicit class and default definitions revision of SC22/WG21/N1582 = 04-0022 and SC22/WG21/ N1702 04-0142
Doc No: SC22/WG21/ N1717 04-0157 Project: Programming Language C++ Date: Friday, November 5, 2004 Author: Francis Glassborow & Lois Goldthwaite email: francis@robinton.demon.co.uk explicit class and default
More informationLaboratory Assignments of OBJECT ORIENTED METHODOLOGY & PROGRAMMING (USING C++) [IT 553]
Laboratory Assignments of OBJECT ORIENTED METHODOLOGY & PROGRAMMING (USING C++) [IT 553] Books: Text Book: 1. Bjarne Stroustrup, The C++ Programming Language, Addison Wesley 2. Robert Lafore, Object-Oriented
More informationCEC225 COURSE COMPACT
CEC225 COURSE COMPACT Course GEC 225 Applied Computer Programming II(2 Units) Compulsory Course Duration Two hours per week for 15 weeks (30 hours) Lecturer Data Name of the lecturer: Dr. Oyelami Olufemi
More informationChapter 9 Delegates and Events
Chapter 9 Delegates and Events Two language features are central to the use of the.net FCL. We have been using both delegates and events in the topics we have discussed so far, but I haven t explored the
More informationComp151. Definitions & Declarations
Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const
More informationBrent A. Perdue. July 15, 2009
Title Page Object-Oriented Programming, Writing Classes, and Creating Libraries and Applications Brent A. Perdue ROOT @ TUNL July 15, 2009 B. A. Perdue (TUNL) OOP, Classes, Libraries, Applications July
More informationCOSC 181 Foundations of Computer Programming. Class 6
COSC 181 Foundations of Computer Programming Class 6 Defining the GradeBook Class Line 9 17 //GradeBook class definition class GradeBook { public: //function that displays a message void displaymessage()
More informationwww.sahajsolns.com Chapter 4 OOPS WITH C++ Sahaj Computer Solutions
Chapter 4 OOPS WITH C++ Sahaj Computer Solutions 1 Session Objectives Classes and Objects Class Declaration Class Members Data Constructors Destructors Member Functions Class Member Visibility Private,
More informationCS107L Handout 02 Autumn 2007 October 5, 2007 Copy Constructor and operator=
CS107L Handout 02 Autumn 2007 October 5, 2007 Copy Constructor and operator= Much of the surrounding prose written by Andy Maag, CS193D instructor from years ago. The compiler will supply a default (zero-argument)
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given
More informationBasics of C++ and object orientation in OpenFOAM
Basics of C++ and object orientation in OpenFOAM To begin with: The aim of this part of the course is not to teach all of C++, but to give a short introduction that is useful when trying to understand
More informationCalling the Function. Two Function Declarations Here is a function declared as pass by value. Why use Pass By Reference?
Functions in C++ Let s take a look at an example declaration: Lecture 2 long factorial(int n) Functions The declaration above has the following meaning: The return type is long That means the function
More informationObject Oriented Software Design II
Object Oriented Software Design II C++ intro Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 26, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February 26,
More informationC++FA 3.1 OPTIMIZING C++
C++FA 3.1 OPTIMIZING C++ Ben Van Vliet Measuring Performance Performance can be measured and judged in different ways execution time, memory usage, error count, ease of use and trade offs usually have
More informationOperator Overloading. Lecture 8. Operator Overloading. Running Example: Complex Numbers. Syntax. What can be overloaded. Syntax -- First Example
Operator Overloading Lecture 8 Operator Overloading C++ feature that allows implementer-defined classes to specify class-specific function for operators Benefits allows classes to provide natural semantics
More informationCopyright 2001, Bill Trudell. Permission is granted to copy for the PLoP 2001 conference. All other rights reserved.
The Secret Partner Pattern Revision 3a by Bill Trudell, July 23, 2001 Submitted to the Pattern Languages of Programs Shepherd: Neil Harrison PC Member: Kyle Brown Thumbnail This paper describes the Secret
More informationLecture 3. Arrays. Name of array. c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] Position number of the element within array c
Lecture 3 Data structures arrays structs C strings: array of chars Arrays as parameters to functions Multiple subscripted arrays Structs as parameters to functions Default arguments Inline functions Redirection
More informationSyllabus OBJECT ORIENTED PROGRAMMING C++
1 Syllabus OBJECT ORIENTED PROGRAMMING C++ 1. Introduction : What is object oriented programming? Why do we need objectoriented. Programming characteristics of object-oriented languages. C and C++. 2.
More informationPHP Object Oriented Classes and objects
Web Development II Department of Software and Computing Systems PHP Object Oriented Classes and objects Sergio Luján Mora Jaume Aragonés Ferrero Department of Software and Computing Systems DLSI - Universidad
More informationObject Oriented Programming With C++(10CS36) Question Bank. UNIT 1: Introduction to C++
Question Bank UNIT 1: Introduction to C++ 1. What is Procedure-oriented Programming System? Dec 2005 2. What is Object-oriented Programming System? June 2006 3. Explain the console I/O functions supported
More informationData Structures using OOP C++ Lecture 1
References: 1. E Balagurusamy, Object Oriented Programming with C++, 4 th edition, McGraw-Hill 2008. 2. Robert Lafore, Object-Oriented Programming in C++, 4 th edition, 2002, SAMS publishing. 3. Robert
More informationStorage and linkage specifiers
Storage and linkage specifiers P. Ronchese Dipartimento di Fisica e Astronomia G.Galilei Università di Padova Object oriented programming and C++ course Object oriented programming and C++ Storage and
More informationATM Case Study OBJECTIVES. 2005 Pearson Education, Inc. All rights reserved. 2005 Pearson Education, Inc. All rights reserved.
1 ATM Case Study 2 OBJECTIVES.. 3 2 Requirements 2.9 (Optional) Software Engineering Case Study: Examining the Requirements Document 4 Object-oriented design (OOD) process using UML Chapters 3 to 8, 10
More informationINTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
More informationSeaport A Portable and Efficient Process-oriented Simulator
Seaport A Portable and Efficient Process-oriented Simulator Kalyan Perumalla College of Computing, Georgia Tech Atlanta, GA 30332-0280 GIT-CC-01-02 March 15, 2001 Abstract Seaport is a process-oriented
More informationCS 101 Computer Programming and Utilization
CS 101 Computer Programming and Utilization Lecture 14 Functions, Procedures and Classes. primitive and objects. Files. Mar 4, 2011 Prof. R K Joshi Computer Science and Engineering IIT Bombay Email: rkj@cse.iitb.ac.in
More information6. Control Structures
- 35 - Control Structures: 6. Control Structures A program is usually not limited to a linear sequence of instructions. During its process it may bifurcate, repeat code or take decisions. For that purpose,
More informationComputer Programming C++ Classes and Objects 15 th Lecture
Computer Programming C++ Classes and Objects 15 th Lecture 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University Copyrights 2013 Eom, Hyeonsang All Rights Reserved Outline
More informationPassing 1D arrays to functions.
Passing 1D arrays to functions. In C++ arrays can only be reference parameters. It is not possible to pass an array by value. Therefore, the ampersand (&) is omitted. What is actually passed to the function,
More informationBinary compatibility for library developers. Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013
Binary compatibility for library developers Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013 Who am I? Open Source developer for 15 years C++ developer for 13 years Software
More informationName: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
More informationCompiler Construction
Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from
More informationIntroduction to Programming Block Tutorial C/C++
Michael Bader Master s Program Computational Science and Engineering C/C++ Tutorial Overview From Maple to C Variables, Operators, Statements Functions: declaration, definition, parameters Arrays and Pointers
More informationObject Oriented Software Design II
Object Oriented Software Design II Real Application Design Christian Nastasi http://retis.sssup.it/~lipari http://retis.sssup.it/~chris/cpp Scuola Superiore Sant Anna Pisa April 25, 2012 C. Nastasi (Scuola
More informationSE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin
SE 360 Advances in Software Development Object Oriented Development in Java Polymorphism Dr. Senem Kumova Metin Modified lecture notes of Dr. Hüseyin Akcan Inheritance Object oriented programming languages
More informationBinary storage of graphs and related data
EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics
More informationBoolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)
Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the
More informationJava Classes. GEEN163 Introduction to Computer Programming
Java Classes GEEN163 Introduction to Computer Programming Never interrupt someone doing what you said couldn't be done. Amelia Earhart Classes, Objects, & Methods Object-oriented programming uses classes,
More informationThe Universal Reference/Overloading Collision Conundruim
The materials shown here differ from those I used in my presentation at the Northwest C++ Users Group. Compared to the materials I presented, these materials correct a variety of technical errors whose
More informationCourse Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
More informationAdapter, Bridge, and Façade
CHAPTER 5 Adapter, Bridge, and Façade Objectives The objectives of this chapter are to identify the following: Complete the exercise in class design. Introduce the adapter, bridge, and façade patterns.
More informationPROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON
PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London
More informationBasics of I/O Streams and File I/O
Basics of This is like a cheat sheet for file I/O in C++. It summarizes the steps you must take to do basic I/O to and from files, with only a tiny bit of explanation. It is not a replacement for reading
More information