Introduction to Programming
|
|
- Matthew Clifton Walsh
- 5 years ago
- Views:
Transcription
1 Introduction to Programming Summer Term 2014 Dr. Adrian Kacso, Univ. Siegen Tel.: 0271/ , Office: H-B 8406 State: June 4, 2014 Betriebssysteme / verteilte Systeme Introduction to Programming (1) i Introduction to Programming Summer Term More on Objects and Classes Betriebssysteme / verteilte Systeme Introduction to Programming (1) 228
2 8 More on Objects and Classes... Contents: An example Initializing member variables Copy constructors Operators Betriebssysteme / verteilte Systeme Introduction to Programming (1) An Example Classes for a 2-D drawing program Assume we want to write a drawing program First, think about the classes / objects we have to deal with: points, lines, rectangles, polygons, circles, text,... Then, think about the operations each object should provide. E.g., for rectangles: constructor: rectangle is aligned horizontally draw, move, movepoint, rotate, scale,... Then, think about the (private) data members needed for each object. E.g., for rectangles: four lines, one for each side (easy drawing!) Then, implement the methods Betriebssysteme / verteilte Systeme Introduction to Programming (1) 20
3 8.1 An Example... Classes for a 2-D drawing program... For brevity, we consider only three classes: Point, Line, Rectangle Operations, data members, and implementation: see the directories DRAW and DRAW2 inside the source code archive chapter8.tgz. the second version prints constructor and destructor calls Betriebssysteme / verteilte Systeme Introduction to Programming (1) Initializing Member Variables References and constants can only be initialized, but not assigned Member variables of a class can be references or constants Question: How can we initialize member variables when creating a new object? C++ provides a special syntax in constructors: Cat::Cat() : itsage(5), itsweight(8) // initialization // body of constructor Normal member variabes can be either initialized or assigned in the body Betriebssysteme / verteilte Systeme Introduction to Programming (1) 22
4 8.2 Initializing Member Variables... Example class Example public: Example(int &avariable); private: const int aconstant; int &areference; Wrong constructor: Example::Example(int &avariable) aconstant = 4711; // > Compiler error areference = avariable; // Assignment to the variable // referenced by areference Betriebssysteme / verteilte Systeme Introduction to Programming (1) Initializing Member Variables... Example class Example public: Example(int &avariable); private: const int aconstant; int &areference; Correct constructor: Example::Example(int &avariable) : aconstant(4711), // initialization areference(avariable) // initialization Betriebssysteme / verteilte Systeme Introduction to Programming (1) 24
5 8. Copy Constructors Reminder: call-by-value A function receives a copy of the actual parameters Objects can be parameters: void myfunction(cat thecat) Cat frisky(5); myfunction(frisky);... how do we copy objects??? Betriebssysteme / verteilte Systeme Introduction to Programming (1) Copy Constructors... Copying objects Copy constructor: Cat::Cat(Cat const &source) itsage = source.itsage; itsweight = source.itsweight; A copy constructor makes an object from another object of the same class in our example, we get a clone cat ;-) The copy constructor is implicitly called when an object is passed to a function / method by value when a function / method returns an object Betriebssysteme / verteilte Systeme Introduction to Programming (1) 26
6 8. Copy Constructors... Quiz: how many Cats are constructed / deconstructed? Cat functionone(cat thecat) cout << "functionone. Returning..." << endl; return thecat; int main() cout << "Making a Cat" << endl; Cat frisky(10); cout << "Calling functionone" << endl; int age = functionone(frisky).getage(); cout << "age is " << age << endl; return 0; Betriebssysteme / verteilte Systeme Introduction to Programming (1) Copy Constructors and with call-by-reference? Cat &functiontwo(cat &thecat) cout << "functiontwo. Returning..." << endl; return thecat; int main() cout << "Making a Cat" << endl; Cat frisky(10); cout << "Calling functiontwo" << endl; int age = functiontwo(frisky).getage(); cout << "age is " << age << endl; return 0; Betriebssysteme / verteilte Systeme Introduction to Programming (1) 28
7 8. Copy Constructors... What if a class does not implement a copy constructor? The compiler provides a default copy constructor, performing a member-wise copy (shallow copy) Example: Cat::Cat(Cat const &thecat) itsage = thecat.itsage; itsweight = thecat.itsweight; So why do we ever have to implement a copy constructor ourselves? Betriebssysteme / verteilte Systeme Introduction to Programming (1) Copy Constructors... Shallow copy vs. deep copy Consider an AristoCat class for aristocratic cats, which can have many names: class AristoCat public: AristoCat(unsigned int numnames); ~AristoCat(); void setname(unsigned int number, string const &name); string const &getname(unsigned int number) const; private: string *; unsigned int ; Betriebssysteme / verteilte Systeme Introduction to Programming (1) 240
8 8. Copy Constructors... Shallow copy vs. deep copy... AristoCat::AristoCat(unsigned int numnames) = numnames; = new string[numnames]; AristoCat::~AristoCat() delete[] ; = NULL; = 0; void AristoCat::setName(unsigned int number, string const &name) if (number < ) [number] = name; Betriebssysteme / verteilte Systeme Introduction to Programming (1) Copy Constructors... A copy constructor for AristoCats The standard, shallow copy AristoCat::AristoCat(AristoCat const &thecat) = thecat.; = thecat.; results in "Frisby" Betriebssysteme / verteilte Systeme Introduction to Programming (1) 242
9 8. Copy Constructors... (Animierte Folie) Obvious problems with shallow copy setname(2,"twinky") "Twinky" dangling t pointer!! "Twinky" delete 0 NULL Betriebssysteme / verteilte Systeme Introduction to Programming (1) Copy Constructors... Deep copy For objects with pointers / references, we (usually) need a deep copy: "Frisby" "Frisby" Betriebssysteme / verteilte Systeme Introduction to Programming (1) 244
10 8. Copy Constructors... Deep copy constructor for AristoCats AristoCat::AristoCat(AristoCat const &thecat) = thecat.; = new string[]; for (int i=0; i<; i++) [i] = thecat.[i]; Betriebssysteme / verteilte Systeme Introduction to Programming (1) Operators Data types and operators A data type defines a range of data values, and a set of operations on instances of this type Operations on basic data types are expressed by operators e.g., for int we have + - * / %... Classes define data types so far, we only used methods to express operations but we also can use operators, e.g. assignment: Cat mycat;...; mycat = yourcat; arithmetic operators: string x;...; x += "hi"; Betriebssysteme / verteilte Systeme Introduction to Programming (1) 246
11 8.4 Operators... The assignment operator Like with the copy constructor, the compiler generates an assigment operator, if it is not implemented in the class: AristoCat & AristoCat::operator=(AristoCat const &thecat) = thecat.; = thecat.; return *this; What is the difference to a copy constructor? Is this the assignment we want to have? Betriebssysteme / verteilte Systeme Introduction to Programming (1) Operators... Shallow assignment: problems Assume we have two AristoCats: mycat yourcat 1 "Frisby" "Twinky" Betriebssysteme / verteilte Systeme Introduction to Programming (1) 248
12 8.4 Operators... Shallow assignment: problems... After mycat = yourcat; we would have: mycat 1 memory leak! "Frisby" yourcat 1 "Twinky" Whenever you implement your own (deep) copy constructor, you also should implement a (deep) assignment operator Betriebssysteme / verteilte Systeme Introduction to Programming (1) Operators... Deep Assignment operator for AristoCats AristoCat & AristoCat::operator=(AristoCat const &thecat) = thecat.; delete ; = new string[]; for (int i=0; i<; i++) [i] = thecat.[i]; return *this; Betriebssysteme / verteilte Systeme Introduction to Programming (1) 250
13 8.4 Operators... Defining other operators (operator overloading) A class can also define other operators however, the set of operators in C++ is fixed: = = * *= / /= % << >> < <= &&... Using operators can make the code more clear, e.g. Complex x, y, z;... x = x * y + z; // instead ofx = x.mult(y).add(z) But use operators only when their meaning is obvious! Betriebssysteme / verteilte Systeme Introduction to Programming (1) Summing up Initializing member variables class Example public: Example(int &avariable); private: const int aconstant; int &areference; Correct constructor: Example::Example(int &avariable) : aconstant(4711), // initialization areference(avariable) // initialization Betriebssysteme / verteilte Systeme Introduction to Programming (1) 252
14 8.5 Summing up... Reminder: Copy Constructor Copy constructor: Cat::Cat(Cat const &source) itsage = source.itsage; itsweight = source.itsweight; A copy constructor makes an object from another object of the same class in our example, we get a clone cat ;-) The copy constructor is implicitly called when an object is passed to a function / method by value when a function / method returns an object Betriebssysteme / verteilte Systeme Introduction to Programming (1) Summing up... Shallow copy setname(2,"twinky") "Twinky" delete 0 NULL dangling t pointer!! "Twinky" Betriebssysteme / verteilte Systeme Introduction to Programming (1) 254
15 8.5 Summing up... Deep copy For objects with pointers / references, we (usually) need a deep copy: "Frisby" "Frisby" Betriebssysteme / verteilte Systeme Introduction to Programming (1) Summing up... Assignment operator AristoCat & AristoCat::operator=(AristoCat const &thecat) = thecat.; delete ; = new string[]; for (int i=0; i<; i++) [i] = thecat.[i]; return *this; This is a deep assignment, like a deep copy Betriebssysteme / verteilte Systeme Introduction to Programming (1) 256
Introduction to Programming
Introduction to Programming SS 2010 Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 Stand: June 21, 2010 Betriebssysteme / verteilte Systeme Introduction
More informationIntroduction to Programming
Introduction to Programming Summer Term 2015 Dr. Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 State: May 6, 2015 Betriebssysteme / verteilte Systeme
More informationCSC1322 Object-Oriented Programming Concepts
CSC1322 Object-Oriented Programming Concepts Instructor: Yukong Zhang February 18, 2016 Fundamental Concepts: The following is a summary of the fundamental concepts of object-oriented programming in C++.
More informationIntroduction to Programming
Introduction to Programming Summer Term 2014 Dr. Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 State: April 9, 2014 Betriebssysteme / verteilte Systeme
More informationAssignment of Structs
Deep Copy 1 Assignment of Structs 2 Slides 1. Table of Contents 2. Assignment of Structs 3. Dynamic Content 4. Shallow Copying 5. Assignment Operator 6. Deep Assignment Copy 7. Assignment Problems 8. Assignment
More informationGEA 2017, Week 4. February 21, 2017
GEA 2017, Week 4 February 21, 2017 1. Problem 1 After debugging the program through GDB, we can see that an allocated memory buffer has been freed twice. At the time foo(...) gets called in the main function,
More informationAnd Even More and More C++ Fundamentals of Computer Science
And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members
More informationObject Oriented Software Design II
Object Oriented Software Design II Inheritance Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 29, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationTHE NAME OF THE CONSTRUCTOR AND DESTRUCTOR(HAVING (~) BEFORE ITS NAME) FUNCTION MUST BE SAME AS THE NAME OF THE CLASS IN WHICH THEY ARE DECLARED.
Constructor and Destructor Member Functions Constructor: - Constructor function gets invoked automatically when an object of a class is constructed (declared). Destructor:- A destructor is a automatically
More informationSuppose we find the following function in a file: int Abc::xyz(int z) { return 2 * z + 1; }
Multiple choice questions, 2 point each: 1. What output is produced by the following program? #include int f (int a, int &b) a = b + 1; b = 2 * b; return a + b; int main( ) int x=1, y=2, z=3;
More informationObject Oriented Software Design II
Object Oriented Software Design II Inheritance Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 29, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationClasses and Pointers: Some Peculiarities
Classes and Pointers: Some Peculiarities Dr. Mardé Helbig Dr. Mardé Helbig, COS 110 1 Issues with Destructor ~ void print Which method is the constructor? How is the constructor different from other methods?
More informationDYNAMIC ARRAYS; FUNCTIONS & POINTERS; SHALLOW VS DEEP COPY
DYNAMIC ARRAYS; FUNCTIONS & POINTERS; SHALLOW VS DEEP COPY Pages 800 to 809 Anna Rakitianskaia, University of Pretoria STATIC ARRAYS So far, we have only used static arrays The size of a static array must
More informationCS 376b Computer Vision
CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves
More informationA brief introduction to C++
A brief introduction to C++ Rupert Nash r.nash@epcc.ed.ac.uk 13 June 2018 1 References Bjarne Stroustrup, Programming: Principles and Practice Using C++ (2nd Ed.). Assumes very little but it s long Bjarne
More informationCOMP 2355 Introduction to Systems Programming
COMP 2355 Introduction to Systems Programming Christian Grothoff christian@grothoff.org http://grothoff.org/christian/ 1 Today Class syntax, Constructors, Destructors Static methods Inheritance, Abstract
More informationG52CPP C++ Programming Lecture 13
G52CPP C++ Programming Lecture 13 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture Function pointers Arrays of function pointers Virtual and non-virtual functions vtable and
More informationSoftware Engineering Concepts: Invariants Silently Written & Called Functions Simple Class Example
Software Engineering Concepts: Invariants Silently Written & Called Functions Simple Class Example CS 311 Data Structures and Algorithms Lecture Slides Friday, September 11, 2009 continued Glenn G. Chappell
More informationChapter 10 Pointers and Dynamic Arrays. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo
Chapter 10 Pointers and Dynamic Arrays 1 Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic Classes, Pointers, Dynamic Arrays The this
More informationC++ Addendum: Inheritance of Special Member Functions. Constructors Destructor Construction and Destruction Order Assignment Operator
C++ Addendum: Inheritance of Special Member Functions Constructors Destructor Construction and Destruction Order Assignment Operator What s s Not Inherited? The following methods are not inherited: Constructors
More informationConstants, References
CS 246: Software Abstraction and Specification Constants, References Readings: Eckel, Vol. 1 Ch. 8 Constants Ch. 11 References and the Copy Constructor U Waterloo CS246se (Spring 2011) p.1/14 Uses of const
More informationClasses and Objects. Class scope: - private members are only accessible by the class methods.
Class Declaration Classes and Objects class class-tag //data members & function members ; Information hiding in C++: Private Used to hide class member data and methods (implementation details). Public
More informationChapter 10. Pointers and Dynamic Arrays. Copyright 2016 Pearson, Inc. All rights reserved.
Chapter 10 Pointers and Dynamic Arrays Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic
More informationIS0020 Program Design and Software Tools Midterm, Fall, 2004
IS0020 Program Design and Software Tools Midterm, Fall, 2004 Name: Instruction There are two parts in this test. The first part contains 22 questions worth 40 points you need to get 20 right to get the
More informationReview: C++ Basic Concepts. Dr. Yingwu Zhu
Review: C++ Basic Concepts Dr. Yingwu Zhu Outline C++ class declaration Constructor Overloading functions Overloading operators Destructor Redundant declaration A Real-World Example Question #1: How to
More informationIntro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.
Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype
More informationWentworth Institute of Technology COMP201 Computer Science II Spring 2015 Derbinsky. C++ Kitchen Sink. Lecture 14.
Lecture 14 1 Exceptions Iterators Random numbers Casting Enumerations Pairs The Big Three Outline 2 Error Handling It is often easier to write a program by first assuming that nothing incorrect will happen
More informationClasses: Member functions // classes example #include <iostream> using namespace std; Objects : Reminder. Member functions: Methods.
Classes: Methods, Constructors, Destructors and Assignment For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Piyush Kumar Classes: Member functions // classes
More informationIntroduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1
Introduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1 Inheritance Consider a new type Square. Following how we declarations for the Rectangle and Circle classes we could declare it as follows:
More informationInheritance, and Polymorphism.
Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to
More informationClasses in C++98 and C++11
Classes in C++98 and C++11 January 10, 2018 Brian A. Malloy Slide 1 of 38 1. When we refer to C++98, we are referring to C++98 and C++03, since they differ only slightly. C++98 contained 3 types of constructors,
More informationLecture 15a Persistent Memory & Shared Pointers
Lecture 15a Persistent Memory & Shared Pointers Dec. 5 th, 2017 Jack Applin, Guest Lecturer 2017-12-04 CS253 Fall 2017 Jack Applin & Bruce Draper 1 Announcements PA9 is due today Recitation : extra help
More informationdouble d0, d1, d2, d3; double * dp = new double[4]; double da[4];
All multiple choice questions are equally weighted. You can generally assume that code shown in the questions is intended to be syntactically correct, unless something in the question or one of the answers
More informationKOM3191 Object Oriented Programming Dr Muharrem Mercimek OPERATOR OVERLOADING. KOM3191 Object-Oriented Programming
KOM3191 Object Oriented Programming Dr Muharrem Mercimek 1 OPERATOR OVERLOADING KOM3191 Object-Oriented Programming KOM3191 Object Oriented Programming Dr Muharrem Mercimek 2 Dynamic Memory Management
More informationC11: Garbage Collection and Constructors
CISC 3120 C11: Garbage Collection and Constructors Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/5/2017 CUNY Brooklyn College 1 Outline Recap Project progress and lessons
More informationNext week s homework. Classes: Member functions. Member functions: Methods. Objects : Reminder. Objects : Reminder 3/6/2017
Next week s homework Classes: Methods, Constructors, Destructors and Assignment Read Chapter 7 Your next quiz will be on Chapter 7 of the textbook For : COP 3330. Object oriented Programming (Using C++)
More informationWritten by John Bell for CS 342, Spring 2018
Advanced OO Concepts Written by John Bell for CS 342, Spring 2018 Based on chapter 3 of The Object-Oriented Thought Process by Matt Weisfeld, with additional material from other sources. Constructors Constructors
More information3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.
3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.
More informationCS105 C++ Lecture 7. More on Classes, Inheritance
CS105 C++ Lecture 7 More on Classes, Inheritance " Operator Overloading Global vs Member Functions Difference: member functions already have this as an argument implicitly, global has to take another parameter.
More informationSolution Manual for Data Structures and Problem Solving Using C++ 2nd edition by Mark A. Weiss
Solution Manual for Data Structures and Problem Solving Using C++ 2nd edition by Mark A. Weiss Link full download: https://getbooksolutions.com/download/solutions-manual-fordata-structures-and-problem-solving-using-c-2nd-edition-by-weiss/
More informationCritique this Code. Hint: It will crash badly! (Next slide please ) 2011 Fawzi Emad, Computer Science Department, UMCP
Critique this Code string const & findsmallest(vector const &v) string smallest = v[0]; for (unsigned int i = 0; i < v.size(); i++) if (v[i] < smallest) smallest = v[i]; return smallest; Hint:
More informationIntermediate Programming & Design (C++) Classes in C++
Classes in C++ A class is a data type similar to a C structure. It includes various local data (called data members) together with constructors, destructors and member functions. All of them are called
More informationQuiz Start Time: 09:34 PM Time Left 82 sec(s)
Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability
More informationCS201 Latest Solved MCQs
Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability
More informationWhat is Polymorphism? Quotes from Deitel & Deitel s. Why polymorphism? How? How? Polymorphism Part 1
Polymorphism Part 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid adult
More informationG52CPP C++ Programming Lecture 20
G52CPP C++ Programming Lecture 20 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Wrapping up Slicing Problem Smart pointers More C++ things Exams 2 The slicing problem 3 Objects are not
More informationAIMS Embedded Systems Programming MT 2017
AIMS Embedded Systems Programming MT 2017 Object-Oriented Programming with C++ Daniel Kroening University of Oxford, Computer Science Department Version 1.0, 2014 Outline Classes and Objects Constructors
More informationCall The Project Dynamic-Memory
1 2 2 Call The Project Dynamic-Memory 4 4 Copy-Paste Main # include "Utilities.hpp" int main(int argc, char * argv[]) { short int *PtrNo; (*PtrNo) = 5; printf ("(*PtrNo) = %d\n", (*PtrNo)); } getchar();
More informationComp151. Construction & Initialization
Comp151 Construction & Initialization Class Object Initialization [comp151] 1 If ALL data members of the class are public, they can be initialized when they are created as follows: class Word int frequency;
More informationDynamic Data Structures
Dynamic Data Structures We have seen that the STL containers vector, deque, list, set and map can grow and shrink dynamically. We now examine how some of these containers can be implemented in C++. To
More informationIntroduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.
Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and
More informationCMSC 202 Section 010x Spring Justin Martineau, Tuesday 11:30am
CMSC 202 Section 010x Spring 2007 Computer Science II Final Exam Name: Username: Score Max Section: (check one) 0101 - Justin Martineau, Tuesday 11:30am 0102 - Sandeep Balijepalli, Thursday 11:30am 0103
More informationPolymorphism Part 1 1
Polymorphism Part 1 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid
More informationScope. Scope is such an important thing that we ll review what we know about scope now:
Scope Scope is such an important thing that we ll review what we know about scope now: Local (block) scope: A name declared within a block is accessible only within that block and blocks enclosed by it,
More informationC++ Review. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University
C++ Review CptS 223 Advanced Data Structures Larry Holder School of Electrical Engineering and Computer Science Washington State University 1 Purpose of Review Review some basic C++ Familiarize us with
More informationConcepts (this lecture) CSC 143. Classes with Dynamically Allocated Data. List of ints w/dups (cont.) Example: List of ints with dups.
CSC 143 Classes with Dynamically Allocated Data Concepts (this lecture) Constructors and destructors for dynamic data The this pointer Deep versus shallow copy Defining assignment (operator=) Copy constructor
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationC++ 8. Constructors and Destructors
8. Constructors and Destructors C++ 1. When an instance of a class comes into scope, the function that executed is. a) Destructors b) Constructors c) Inline d) Friend 2. When a class object goes out of
More informationWhat does it mean by information hiding? What are the advantages of it? {5 Marks}
SECTION ONE (COMPULSORY) Question #1 [30 Marks] a) Describe the main characteristics of object-oriented programming. {5 Marks Encapsulation the ability to define a new type and a set of operations on that
More informationMore About Classes. Gaddis Ch. 14, CS 2308 :: Fall 2015 Molly O'Neil
More About Classes Gaddis Ch. 14, 13.3 CS 2308 :: Fall 2015 Molly O'Neil Pointers to Objects Just like pointers to structures, we can define pointers to objects Time t1(12, 20, true); Time *tptr; tptr
More informationLecture 6 Dynamic Classes and the Law of the Big Three. Instructor: George Wolberg Department of Computer Science City College of New York
CSC212 Data Structure Lecture 6 Dynamic Classes and the Law of the Big Three Instructor: George Wolberg Department of Computer Science City College of New York @ George Wolberg, 2016 1 Why Dynamic Classes
More informationIntroducing C++ to Java Programmers
Introducing C++ to Java Programmers by Kip Irvine updated 2/27/2003 1 Philosophy of C++ Bjarne Stroustrup invented C++ in the early 1980's at Bell Laboratories First called "C with classes" Design Goals:
More informationHigher Secondary Second Year COMPUTER SCIENCE Model question Paper - 3
Higher Secondary Second Year COMPUTER SCIENCE Model question Paper - 3 Time : 2.30 Hrs] [Max Marks : 70 Part I Choose the correct answer: 15 1 = 15 1. Which of the following key deletes the characters
More informationProgramming C++ Lecture 3. Howest, Fall 2012 Instructor: Dr. Jennifer B. Sartor
Programming C++ Lecture 3 Howest, Fall 2012 Instructor: Dr. Jennifer B. Sartor Jennifer.sartor@elis.ugent.be S Inheritance S Software reuse inherit a class s data and behaviors and enhance with new capabilities.
More informationConsider the program...
Smart Pointers Consider the program... When the scope of foo is entered storage for pointer x is created The new allocates storage on the heap class X {... When the scope foo is left, the storage for x
More informationArray Elements as Function Parameters
Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;
More informationCS 162, Lecture 25: Exam II Review. 30 May 2018
CS 162, Lecture 25: Exam II Review 30 May 2018 True or False Pointers to a base class may be assigned the address of a derived class object. In C++ polymorphism is very difficult to achieve unless you
More informationIntroduction to C++ Part II. Søren Debois. Department of Theoretical Computer Science IT University of Copenhagen. September 12th, 2005
Introduction to C++ Part II Søren Debois Department of Theoretical Computer Science IT University of Copenhagen September 12th, 2005 Søren Debois (Theory, ITU) Introduction to C++ September 12th, 2005
More informationObject Oriented Programming: Inheritance Polymorphism
Object Oriented Programming: Inheritance Polymorphism Shahram Rahatlou Computing Methods in Physics http://www.roma1.infn.it/people/rahatlou/cmp/ Anno Accademico 2018/19 Today s Lecture Introduction to
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics and Computer Science
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics and Computer Science Written examination Homologation C++ and Computer Organization (2DMW00) Part I: C++ - on Tuesday, November 1st 2016, 9:00h-12:00h.
More informationCS32 - Week 1. Umut Oztok. June 24, Umut Oztok CS32 - Week 1
CS32 - Week 1 Umut Oztok June 24, 2016 Administration Email:umut@ucla.edu Office hours: R 09:30am-12:30pm (BH 4663) Constructor Special member function to initialize an instance of a class. Called whenever
More informationexplicit class and default definitions revision of SC22/WG21/N1582 =
Doc No: SC22/WG21/ N1702 04-0142 Project: JTC1.22.32 Date: Wednesday, September 08, 2004 Author: Francis Glassborow & Lois Goldthwaite email: francis@robinton.demon.co.uk explicit class and default definitions
More informationConstructor - example
Constructors A constructor is a special member function whose task is to initialize the objects of its class. It is special because its name is same as the class name. The constructor is invoked whenever
More informationModern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi
Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Using pointers Pointers are polymorphic Pointer this Using const with pointers Stack and Heap Memory leaks and dangling pointers
More informationProgramming, numerics and optimization
Programming, numerics and optimization Lecture A-4: Object-oriented programming Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428
More informationUniversity of Toronto
University of Toronto Faculty of Applied Science and Engineering Midterm November, 2010 ECE244 --- Programming Fundamentals Examiners: Tarek Abdelrahman, Michael Gentili, and Michael Stumm Instructions:
More informationComposition I. composition is a way to combine or compose multiple classes together to create new class
Composition I composition is a way to combine or compose multiple classes together to create new class composition has-a relationship a car has-a gear-box a graduate student has-a course list if XX has-a
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Deep vs. shallow copy Methods created by the compiler We have seen that the compiler creates for each class a
More informationObject-Oriented Programming. Lecture 4 Dr Piotr Cybula
Object-Oriented Programming Lecture 4 Dr Piotr Cybula Inheritance enrichment of existing classes with additional functionality ability of modifying the action of methods without
More informationPractice question Answers
Practice question Answers COMP-322, Winter 2012, All Sections These questions are not necessarily the same as a final as they aren t necessarily exactly representative of the degree of difficulty, length,
More informationModern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi
Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Move semantics Classes Operator overloading Making your class copyable Making your class movable Rule of all or nothing Inheritance
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationC10: Garbage Collection and Constructors
CISC 3120 C10: Garbage Collection and Constructors Hui Chen Department of Computer & Information Science CUNY Brooklyn College 3/5/2018 CUNY Brooklyn College 1 Outline Recap OOP in Java: composition &
More informationSpecial Member Functions
CS 247: Software Engineering Principles Special Member Functions Readings: Eckel, Vol. 1 Ch. 11 References and the Copy Constructor Ch. 12 Operator Overloading ( operator= ) U Waterloo CS247 (Spring 2017)
More informationLecture 6 Introduction to Objects and Classes
Lecture 6 Introduction to Objects and Classes Outline Basic concepts Recap Computer programs Programming languages Programming paradigms Object oriented paradigm-objects and classes in Java Constructors
More informationCSE 143. Complexity Analysis. Program Efficiency. Constant Time Statements. Big Oh notation. Analyzing Loops. Constant Time Statements (2) CSE 143 1
CSE 1 Complexity Analysis Program Efficiency [Sections 12.1-12., 12., 12.9] Count number of instructions executed by program on inputs of a given size Express run time as a function of the input size Assume
More information! Determine if a number is odd or even. ! Determine if a number/character is in a range. ! Assign a category based on ranges (wind speed)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to:! Determine if a number is odd or even CS 2308 Spring 2013 Jill Seaman! Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationInheritance and aggregation
Advanced Object Oriented Programming Inheritance and aggregation Seokhee Jeon Department of Computer Engineering Kyung Hee University jeon@khu.ac.kr 1 1 Inheritance? Extend a class to create a new class
More informationCS24 Week 3 Lecture 1
CS24 Week 3 Lecture 1 Kyle Dewey Overview Some minor C++ points ADT Review Object-oriented Programming C++ Classes Constructors Destructors More minor Points (if time) Key Minor Points const Motivation
More informationObject-Oriented Principles and Practice / C++
Object-Oriented Principles and Practice / C++ Alice E. Fischer September 26, 2016 OOPP / C++ Lecture 4... 1/33 Global vs. Class Static Parameters Move Semantics OOPP / C++ Lecture 4... 2/33 Global Functions
More informationC++_ MARKS 40 MIN
C++_16.9.2018 40 MARKS 40 MIN https://tinyurl.com/ya62ayzs 1) Declaration of a pointer more than once may cause A. Error B. Abort C. Trap D. Null 2Whice is not a correct variable type in C++? A. float
More informationClasses - 2. Data Processing Course, I. Hrivnacova, IPN Orsay
Classes - 2 Data Processing Course, I. Hrivnacova, IPN Orsay OOP, Classes Reminder Requirements for a Class Class Development Constructor Access Control Modifiers Getters, Setters Keyword this const Member
More informationReferences Available Upon Request Jesse Liberty
References Available Upon Request Jesse Liberty In my previous column, 1 I talked at length about pointers; this month the focus is on references. A reference is an alias to an object. While it is often
More informationPointers and Strings Chapters 10, Pointers and Arrays (10.3) 3.2 Pointers and Arrays (10.3) An array of ints can be declared as
Pointers and Strings Chapters 10, 12 2/5/07 CS250 Introduction to Computer Science II 1 3.1 Pointers and Arrays (10.3) An array of ints can be declared as o int numbers[] = 1, 2, 3, 4, 5; numbers is also
More informationCS250 Final Review Questions
CS250 Final Review Questions The following is a list of review questions that you can use to study for the final. I would first make sure that you review all previous exams and make sure you fully understand
More informationDynamic Allocation of Memory
Dynamic Allocation of Memory Lecture 4 Sections 10.9-10.10 Robb T. Koether Hampden-Sydney College Fri, Jan 25, 2013 Robb T. Koether (Hampden-Sydney College) Dynamic Allocation of Memory Fri, Jan 25, 2013
More informationConstructors & Destructors
Constructors & Destructors Constructor It is a member function which initializes a class. A constructor has: (i) the same name as the class itself (ii) no return type class rectangle private: float height;
More informationTopics. Constructor. Constructors
Topics 1) How can we initialize an object when it's created? 2) How can we do things when an object is destroyed? 3) How can we write functions with different parameters? Slides #11 - Text 7.6-7.7 Constructors
More informationVariables, Memory and Pointers
Variables, Memory and Pointers A variable is a named piece of memory The name stands in for the memory address int num; Variables, Memory and Pointers When a value is assigned to a variable, it is stored
More informationl Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More information