Function templates. An abstraction on a function space. A generic type.
|
|
- Maurice Harvey
- 6 years ago
- Views:
Transcription
1 Function templates. An abstraction on a function space. A generic type. // function template #include <iostream> using namespace std; template <class T> T Maximum (T, T); main () int i=5, j=86, k; long l=15, m=3, n; k=maximum<int>(i,j); n=maximum<long>(l,m); cout << k << endl; cout << n << endl; template <class T> T Maximum (T a, T b) T result; result = (a>b)? a : b; return result; OUTPUT A class is an extended concept of data structure. Instead of holding only data, it can hold both data and functions.
2 #include <iostream> using namespace std; class Rectangle private: int myx; int myy; void set_values(int, int); int area (); int peripheri(); ; void Rectangle :: set_values(int a, int b) myx=a; myy=b; int Rectangle :: area() return myx*myy; int Rectangle :: peripheri() return 2*(myx+myy); main() Rectangle x; x.set_values(4,5); cout<<"its area: "<<x.area()<<endl; cout<<"its peripheri: "<<x.peripheri()<<endl;
3 Some observations. Public Private Protected Access specifier of a class Available to public Available to other members of same class or to friends Available as in Private and to members of derived classes Private is the default access level even if you don t specify it as such. Therefore, by default, everything is private unless precisely specified otherwise. Class is like a type. Here we described a new type called Rectangle which has two private data members myx and myy, and three member functions with public access: setvalue(int, int), area(), and peripheri(). Note the most important specifier with two colons :: specifying the scope of the member function. Using constructors and destructor for a class. A constructor constructs an instant of a class when it is called; a destructor destroys a specific class object when no longer needed.
4 Program with a more meaty class definition: class Rectangle private: int myx; int myy; Rectangle(int a, int b) myx=a; myy=b; //a constructor void print() const cout<<myx<<" "<<myy<<endl; Rectangle(const Rectangle&); //a copy constructor int area (); int peripheri(); ; Rectangle :: Rectangle(const Rectangle& r) : myx(r.myx), myy(r.myy) The main routine tries out the code in this fashion: main() Rectangle x(53,41),y(16,48); // construct x and y x.print(); y.print(); cout<<"y area: "<<y.area()<<endl; cout<<"y peripheri: "<<y.peripheri()<<endl; y=x; //copy object x to y y.print(); OUTPUT
5 y area: 768 y peripheri: Friends of a class. Jerry Seinfeld in apt 5B has three friends: Kramer, George and Elaine in the sitcom Seinfeld. All his friends could barge in whenever they feel like. Kramer drops in mostly unannounced and goes for the fridge.. Therefore, Kramer is a friend of the object apt 5B which he doesn t own, but New class definition with sstream. This is just the interface for the class, we call it ADT (Abstract Data Type) for class Rectangle. ADT of a class Interface for the class Class definition without implementation.
6 #include <iostream> #include <sstream> using namespace std; class Rectangle friend Rectangle operator + (Rectangle, Rectangle); friend istream& operator >> (istream&, Rectangle&); friend ostream& operator << (ostream&, const Rectangle&); private: int myx; int myy; Rectangle(int a, int b) myx=a; myy=b; Rectangle(const Rectangle&); //a copy constructor int area (); int peripheri(); ; The implementation part of our class follows next. istream& operator >> (istream& in, Rectangle& r) in >> r.myx; in >> r.myy; return in; ostream& operator<<(ostream& out, const Rectangle& r) out << r.myx <<" "<<r.myy << endl; return out; Rectangle :: Rectangle(const Rectangle& r) : myx(r.myx), myy(r.myy)
7 int Rectangle :: area() return myx*myy; int Rectangle :: peripheri() return 2*(myx+myy); // The test-program is outlined below. main() Rectangle x(53,41),y(16,48); cout<<x<<"\n"; cout<<y<<"\n"; cin>>x; cout<<x<<endl; cout<<y<<endl; cout<<"y area: "<<y.area()<<endl; cout<<"y peripheri: "<<y.peripheri()<<endl; OUTPUT y area: 768 y peripheri:
8 Another way of using a friendly class. #include <iostream> using namespace std; class Square; class Rectangle private: int mywidth; int myheight; Rectangle (int a, int b) : mywidth(a), myheight(b) void print(); int area () return (mywidth * myheight); void convert (Square a); ; class Square private: int myside; Square(int a) : myside(a) friend class Rectangle; ; void Rectangle :: print() cout<<mywidth<<" "<<myheight<<endl; void Rectangle::convert (Square a) mywidth = a.myside; myheight = a.myside; //test program main ()
9 Square sqr(25); Rectangle rect(16,12); rect.print(); rect.convert(sqr); cout <<rect.area()<<endl; OUTPUT Another example. This time we define a Point class. And after it is successfully defined, we d use a Line class that might join two points. Point ss Line #include <iostream> #include <sstream> using namespace std; class Point friend ostream& operator << (ostream&, const Point&); protected: double myx; double myy; Point(double x=0.0, double y=0.0) : myx(x), myy(y) Point(const Point& p) : myx(p.myx), myy(p.myy) ~Point() Point& operator = (const Point& p) myx=p.myx;
10 ; myy=p.myy; return *this; double x() const return myx; double y() const return myy; string tostring() const ostringstream o; o<<"("<<myx<<","<<myy<<")"; return o.str(); ostream& operator << (ostream& out, const Point& p) return out << p.tostring(); main() Point p0; Point p1(2.3, -4.6); Point p2(5.89, 12.32); cout<<"p0: "<<p0<<" "<<"p1: "<<p1<<" "<<"p2: "<<p2<<endl; OUTPUT p0: (0,0) p1: (2.3,-4.6) p2: (5.89,12.32) An important feature in C++ class concept is inheritance. A derived class from a parent class inherits the parent class.
11 polygon Triangle Rectangle Both Rectangle and Triangle inherit the properties of the base class Polygon. To derive a class from the parent class, we express it as class Derived_class_name : public base_class_name. // An example of inheritance #include <iostream> using namespace std; class Polygon protected: int mywidth, myheight; void set_values(int a, int b) mywidth=a; myheight=b; ;
12 class Rectangle: public Polygon int area () return (mywidth * myheight); ; class Triangle: public Polygon int area () return (mywidth * myheight / 2); ; main () Rectangle rect; Triangle trgl; rect.set_values(8,6); trgl.set_values(12,13); cout << rect.area() << endl; cout << trgl.area() << endl; The members inherited by Rectangle and Triangle have the same access permission as they had in their base_class Polygon: Polygon :: mywidth protected access Triangle :: mywidth protected access Rectangle :: mywidth protected access Polygon :: set_values public access Triangle :: set_values public access When we declare class Triangle : public Polygon we are saying that the keyword public following the : mark
13 implies the maximum access level for all the members inherited from the parent class. This means that the derived class members will inherit all the members with the same access levels they had in the base class. e.g. class Daughter : protected Mother; implies all the members of the Daughter inherited from Mother would be set protected even if they were public in Mother. Note that protected access specifier is similar to private. However, when a class inherits from another one, the members of the derived class can access the protected members inherited from the base class, but not its private members. Access public protected private Members of the same class yes yes yes Members of derived class yes yes no Nonmembers yes no no An inheritance adds more meat to an ADT. class Cardiologist : public Doctor ; Here we intend to claim
14 Cardiologist is "a kind of a" Doctor Cardiologist is "derived from" Doctor Cardiologist is "a specialized" Doctor Cardiologist is a "subclass" of Doctor Cardiologist is a "derived class" of Doctor Doctor is the "base class" of Cardiologist Doctor is the "superclass" of Cardiologist Pointer of a derived class could be converted to a base class but not the other way round. If I m pointing at a cardiologist, I m pointing at a doctor. Therefore, this is ok. void f(doctor* d); void g(cardiologist* c) f(c); Derived classes do not get access to private members of a base class. This effectively "seals off" the derived class from any changes made to the private members of the base class. Multiple inheritance. A class could inherit from two or more classes. The following shows an example. #include <iostream> using namespace std; class Polygon protected: int width, height; void set_values (int a, int b) width=a; height=b; ;
15 class Output void otput (int i); ; void Output::otput (int i) cout << i << endl; class Rectangle: public Polygon, public Output int area () return (width * height); ; class Triangle: public Polygon, public Output int area () return (width * height / 2); ; main () Rectangle rect; Triangle trgl; rect.set_values (4,5); trgl.set_values (4,5); rect.otput (rect.area()); trgl.otput (trgl.area()); Some examples of ADT 1. ADT: Stack Representation: A container that contains items of same type.
16 Access: Access of a stack is only at one end, called the top of the stack. Removal must be made at the top. Constructors and destructor: create an empty stack of a given size destroy de-allocates the memory stack using Access functions: top returns the last element on the stack is_empty returns true if stack empty Mutator functions: push pop Inserts a new element at the top deletes the top element from the stack. top stack An Interface (ADT) for stack class: class Stack Stack(int s=100); //sets a default maximum for stack ~Stack(); //destructor for stack int top() const;
17 bool is_empty() const; bool is_full() const; void push(cosnt int); int pop(); ; private: int mya[]; // an array of integers int mymax; // maximum size of the stack int mycount; //number of elements in the stack 2. ADT: Queue Representation: A container that contains items of same type. Access: Access of a queue is only at front and at back. Insertions only at the back, deletions are from the front. Constructors and destructor: create an empty queue of a given size destroy de-allocates the memory queue using Access functions: back returns the last element in the queue front returns the first element of queue is_empty returns true if empty is_full returns true if full Mutator functions: insert Inserts a new element at the back delete deletes the element from the front.
18 back front entering leaving Queue An interface (ADT) for queue class class Queue Queue(int m=100); //create an 100 element queue ~Queue(); //Destructor int front const; // returns the front element int back const; //returns the element at the back bool is_empty() const; bool is_full() const; void enter(const int); int leave(); ; private: int mymax; // max number of items on the queue int mya[mymax]; // Queue itself int myfront; // location of next leave int myback; //location for next entry 3. ADT: Purse
19 Again, another container but more like a set rather than lists like stacks and queues. Contains pennies (1c), nickels (5c), dimes (10c) and quarters (25c) We go straight to the interface to present its ADT. class Purse private: int myp; int myn; int myd; int myq; //number of pennies in the purse //number of nickels in the purse //number of dimes in the purse //number of quarters in the purse ; Purse(int, int, int, int); //constructor ~Purse(); //destructor int pennies () const; // get pennies inr nickels () const; // get nickels int dimes () const; // get dimes int quarters () const; // get quarters int value() const; // return total value void reduce (); // reduce total value to dollars void insert(int); //insert into purse void remove(int); //remove from purse void empty(); // remove all from purse 4. ADT: Address We go straight to its interface to describe its ADT. class Address
20 ; private: string mystreet; string mycity; string mystate; string mycode; string mycountry; Address(string, string, string, string, string); string Street(); // returns mystreet string City(); // returns mycity string State(); //returns mystate string Code(); //returns mycode string Country(); // returns mycountry void set_street(string); // sets street void set_city(string); // sets city void set_state(string); // sets state void set_code(string); // sets code void set_country(string); // sets country 5. ADT: Ratio num A ratio is an object like,, is expressed as. 7 1 den class Ratio friend Ratio operator + (Ratio, Ratio); // allows adding two ratios friend Ratio operator * (Ratio, Ratio); // allows multiplication friend Ratio operator << (ostream&, const Ratio&); // print output freind Ratio operator >> (istream&, const Ratio&); //input operator protected: int mynum; // numerator
21 int myden; // denominator void reduce(); // reduce a ratio ; Ratio(int, int); //constructor Ratio(const Ratio&); // copy constructor void print() const; //print ratio void inverse() const; //inverse ratio and print
Object Oriented Programming. A class is an expanded concept of a data structure: instead of holding only data, it can hold both data and functions.
Classes (I) Object Oriented Programming A class is an expanded concept of a data structure: instead of holding only data, it can hold both data and functions. An object is an instantiation of a class.
More informationProgramming in C++: Assignment Week 5
Programming in C++: Assignment Week 5 Total Marks : 20 Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology Kharagpur 721302 partha.p.das@gmail.com April 3, 2017
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
More informationMidterm Exam 5 April 20, 2015
Midterm Exam 5 April 20, 2015 Name: Section 1: Multiple Choice Questions (24 pts total, 3 pts each) Q1: Which of the following is not a kind of inheritance in C++? a. public. b. private. c. static. d.
More informationData Structures (INE2011)
Data Structures (INE2011) Electronics and Communication Engineering Hanyang University Haewoon Nam ( hnam@hanyang.ac.kr ) Lecture 1 1 Data Structures Data? Songs in a smartphone Photos in a camera Files
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 informationAbstract Data Types (ADTs) 1. Legal Values. Client Code for Rational ADT. ADT Design. CS 247: Software Engineering Principles
Abstract Data Types (ADTs) CS 247: Software Engineering Principles ADT Design An abstract data type (ADT) is a user-defined type that bundles together: the range of values that variables of that type can
More informationCS 247: Software Engineering Principles. ADT Design
CS 247: Software Engineering Principles ADT Design Readings: Eckel, Vol. 1 Ch. 7 Function Overloading & Default Arguments Ch. 12 Operator Overloading U Waterloo CS247 (Spring 2017) p.1/17 Abstract Data
More informationIntroduction Of Classes ( OOPS )
Introduction Of Classes ( OOPS ) Classes (I) A class is an expanded concept of a data structure: instead of holding only data, it can hold both data and functions. An object is an instantiation of a class.
More informationThe mechanism that allows us to extend the definition of a class without making any physical changes to the existing class is called inheritance.
Class : BCA 3rd Semester Course Code: BCA-S3-03 Course Title: Object Oriented Programming Concepts in C++ Unit III Inheritance The mechanism that allows us to extend the definition of a class without making
More information18. Polymorphism. Object Oriented Programming: Pointers to base class // pointers to base class #include <iostream> using namespace std;
- 126 - Object Oriented Programming: 18. Polymorphism Before getting into this section, it is recommended that you have a proper understanding of pointers and class inheritance. If any of the following
More informationLab 2 - Introduction to C++
Lab 2 - Introduction to C++ 2.680 Unmanned Marine Vehicle Autonomy, Sensing and Communications February 8th, 2018 Michael Benjamin, mikerb@mit.edu Henrik Schmidt, henrik@mit.edu Department of Mechanical
More informationSSE2034: System Software Experiment 3 Spring 2016
SSE2034: System Software Experiment 3 Spring 2016 Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Object Initialization class Rectangle { private:
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 informationMore C++ : Vectors, Classes, Inheritance, Templates. with content from cplusplus.com, codeguru.com
More C++ : Vectors, Classes, Inheritance, Templates with content from cplusplus.com, codeguru.com 2 Vectors vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes
More information6.096 Introduction to C++ January (IAP) 2009
MIT OpenCourseWare http://ocw.mit.edu 6.096 Introduction to C++ January (IAP) 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Welcome to 6.096 Lecture
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 informationMore C++ : Vectors, Classes, Inheritance, Templates
Vectors More C++ : Vectors,, Inheritance, Templates vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes defined differently can be resized without explicit
More informationExample Final Questions Instructions
Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.
More informationUse the dot operator to access a member of a specific object.
Lab 16 Class A class is a data type that can contain several parts, which are called members. There are two types of members, data member and functions. An object is an instance of a class, and each object
More informationVectors of Pointers to Objects. Vectors of Objects. Vectors of unique ptrs C++11. Arrays of Objects
Vectors of Objects As we have mentioned earlier, you should almost always use vectors instead of arrays. If you need to keep track of persons (objects of class Person), you must decide what to store in
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 informationCSE 374 Programming Concepts & Tools. Hal Perkins Spring 2010
CSE 374 Programming Concepts & Tools Hal Perkins Spring 2010 Lecture 19 Introduction ti to C++ C++ C++ is an enormous language: g All of C Classes and objects (kind of like Java, some crucial differences)
More informationCSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 19 Introduction to C++ C++ C++ is an enormous language: All of C Classes and objects (kind of like Java, some crucial differences) Many
More informationG52CPP C++ Programming Lecture 14. Dr Jason Atkin
G52CPP C++ Programming Lecture 14 Dr Jason Atkin 1 Last Lecture Automatically created methods: A default constructor so that objects can be created without defining a constructor A copy constructor used
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 informationIntroduction to the C programming language
Introduction to the C programming language From C to C++: Stack and Queue Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 23, 2010 Outline 1 From struct to classes
More informationLab 2: ADT Design & Implementation
Lab 2: ADT Design & Implementation By Dr. Yingwu Zhu, Seattle University 1. Goals In this lab, you are required to use a dynamic array to design and implement an ADT SortedList that maintains a sorted
More informationC++ Memory Map. A pointer is a variable that holds a memory address, usually the location of another variable in memory.
Pointer C++ Memory Map Once a program is compiled, C++ creates four logically distinct regions of memory: Code Area : Area to hold the compiled program code Data Area : Area to hold global variables Stack
More informationAbstract Data Types. Lecture 23 Section 7.1. Robb T. Koether. Hampden-Sydney College. Wed, Oct 24, 2012
Abstract Data Types Lecture 23 Section 7.1 Robb T. Koether Hampden-Sydney College Wed, Oct 24, 2012 Robb T. Koether (Hampden-Sydney College) Abstract Data Types Wed, Oct 24, 2012 1 / 19 1 Abstract Data
More informationpointers & references
pointers & references 1-22-2013 Inline Functions References & Pointers Arrays & Vectors HW#1 posted due: today Quiz Thursday, 1/24 // point.h #ifndef POINT_H_ #define POINT_H_ #include using
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 informationAbstraction in Software Development
Abstract Data Types Programmer-created data types that specify values that can be stored (type of data) operations that can be done on the values The user of an abstract data type (ADT) does not need to
More informationIntroduction to the C programming language
Introduction to the C programming language From C to C++: Stack and Queue Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 23, 2010 Outline 1 From struct to classes
More informationIntroduction to Java for C/C++ Programmers. Kevin Squire Department of Computer Science Naval Postgraduate School
Introduction to Java for C/C++ Programmers Kevin Squire Department of Computer Science Naval Postgraduate School Homework Download and install Java 6.0 Eclipse I ll introduce Eclipse sometime this week
More informationCSCE 110 PROGRAMMING FUNDAMENTALS
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 15. Dictionaries (1): A Key Table Class Prof. amr Goneid, AUC 1 Dictionaries(1): A Key Table Class Prof. Amr Goneid, AUC 2 A Key Table
More informationCAAM 420 Fall 2012 Lecture 29. Duncan Eddy
CAAM 420 Fall 2012 Lecture 29 Duncan Eddy November 7, 2012 Table of Contents 1 Templating in C++ 3 1.1 Motivation.............................................. 3 1.2 Templating Functions........................................
More informationFriend Functions, Inheritance
Friend Functions, Inheritance Friend Function Private data member of a class can not be accessed by an object of another class Similarly protected data member function of a class can not be accessed by
More informationObject-Oriented Programming in C++
Object-Oriented Programming in C++ Pre-Lecture 9: Advanced topics Prof Niels Walet (Niels.Walet@manchester.ac.uk) Room 7.07, Schuster Building March 24, 2015 Prelecture 9 Outline This prelecture largely
More informationThe Address-of Operator &: The & operator can find address occupied by a variable. If var is a variable then, &vargives the address of that variable.
VIRTUAL FUNCITONS Pointers: Some C++ tasks are performed more easily with pointers, and other C++ tasks, such as dynamic memory allocation, cannot be performed without them. As you know every variable
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 10 October 1, 2018 CPSC 427, Lecture 10, October 1, 2018 1/20 Brackets Example (continued from lecture 8) Stack class Brackets class Main
More informationOBJECT ORIENTED PROGRAMMING USING C++
OBJECT ORIENTED PROGRAMMING USING C++ Inheritance Concept Polygon Rectangle Triangle class Polygon{ private: int numvertices; float *xcoord, *ycoord; void set(float *x, float *y, int nv); class Rectangle{
More informationClass (Inheritance) SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong
Class (Inheritance) Prof. Jinkyu Jeong (Jinkyu@skku.edu) TA -- Minwoo Ahn (minwoo.ahn@csl.skku.edu) TA -- Donghyun Kim (donghyun.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu
More informationMore Group HW. #ifndef Stackh #define Stackh. #include <cstdlib> using namespace std;
More Group HW The following code is contained in the file ex1stck.h. Fill in the blanks with the C++ statement(s) that will correctly finish the method. Each blank may be filled in with more than one statement.
More informationProgramming in C++: Assignment Week 4
Programming in C++: Assignment Week 4 Total Marks : 20 August 12, 2017 Question 1 Which of the following operators can use friend functions for overloading? Mark 1 a. == b. [ ] c. -> d. ( ) Answer: a As
More informationCSE 303: Concepts and Tools for Software Development
CSE 303: Concepts and Tools for Software Development Hal Perkins Autumn 2008 Lecture 24 Introduction to C++ CSE303 Autumn 2008, Lecture 24 1 C++ C++ is an enormous language: All of C Classes and objects
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 informationC++ For Science and Engineering Lecture 27
C++ For Science and Engineering Lecture 27 John Chrispell Tulane University Monday November 1, 2010 Classes and the This pointer Every C++ object has a curious pointer called this. If we want to extend
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 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 informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 19 November 7, 2018 CPSC 427, Lecture 19, November 7, 2018 1/18 Exceptions Thowing an Exception Catching an Exception CPSC 427, Lecture
More informationChapter 11. Abstract Data Types and Encapsulation Concepts
Chapter 11 Abstract Data Types and Encapsulation Concepts The Concept of Abstraction An abstraction is a view or representation of an entity that includes only the most significant attributes The concept
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 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 informationDATA STRUCTURES AND ALGORITHMS LECTURE 08 QUEUES IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD
DATA STRUCTURES AND ALGORITHMS LECTURE 08 S IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD S ABSTRACT DATA TYPE An Abstract Queue (Queue ADT) is an abstract data type that emphasizes specific
More informationINHERITANCE PART 2. Constructors and Destructors under. Multiple Inheritance. Common Programming Errors. CSC 330 OO Software Design 1
INHERITANCE PART 2 Constructors and Destructors under Inheritance Multiple Inheritance private and protected Inheritance Common Programming Errors CSC 330 OO Software Design 1 What cannot be inherited?
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Spring 2007 7p-9p, Thursday, March 1 Name: NetID: Lab Section
More informationROOT Course. Vincenzo Vitale, Dip. Fisica and INFN Roma 2
ROOT Course Vincenzo Vitale, Dip. Fisica and INFN Roma 2 OUTLINE Object-Oriented programming Procedural and OO paradigms Fundamental Concepts A ROOT class Vincenzo Vitale, Astro & Particle Physics SW,
More informationInheritance. Transitivity
Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated
More informationCircle all of the following which would make sense as the function prototype.
Student ID: Lab Section: This test is closed book, closed notes. Points for each question are shown inside [ ] brackets at the beginning of each question. You should assume that, for all quoted program
More information1 Short Answer (7 Points Each)
1 Short Answer (7 Points Each) 1. Given the following function, what operations will need to be overloaded in the class T for this code to compile? template T square(t n) { return n * n; } The
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 informationLaboratory 7. Programming Workshop 2 (CSCI 1061U) Faisal Qureshi.
Laboratory 7 Programming Workshop 2 (CSCI 1061U) Faisal Qureshi http://faculty.uoit.ca/qureshi C++ Inheritance Due back on Saturday, March 25 before 11:59 pm. Goal You are asked to create a commandline-based
More informationObject Oriented Programming. Assistant Lecture Omar Al Khayat 2 nd Year
Object Oriented Programming Assistant Lecture Omar Al Khayat 2 nd Year Syllabus Overview of C++ Program Principles of object oriented programming including classes Introduction to Object-Oriented Paradigm:Structures
More informationMore Advanced Class Concepts
More Advanced Class Concepts Operator overloading Inheritance Templates PH (RH) (Roger.Henriksson@cs.lth.se) C++ Programming 2016/17 146 / 281 Operator Overloading In most programming languages some operators
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 informationTemplates (again) Professor Hugh C. Lauer CS-2303, System Programming Concepts
Templates (again) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationHomework 6. Reading. Problems. Handout 7 CS242: Autumn November
Homework 6 Due 14 November, 5PM Handout 7 CS242: Autumn 2012 7 November Reading 1. Chapter 10, section 10.2.3 2. Chapter 11, sections 11.3.2, and 11.7 3. Chapter 12, section 12.4 4. Chapter 13, section
More informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment:
More informationChapter 12 - Templates
Chapter 12 - Templates O utline 12.1 Introd uction 12.2 Function Te m plate s 12.3 Ove rload ing Te m plate Functions 12.4 Class Te m p late s 12.5 Class Te m plate s and Non-type Param e te rs 12.6 Te
More informationIntroduction to Classes
Introduction to Classes Procedural and Object-Oriented Programming Procedural and Object-Oriented Programming Procedural programming focuses on the process/actions that occur in a program Object-Oriented
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationExercise1. // classes first example. #include <iostream> using namespace std; class Rectangle. int width, height; public: void set_values (int,int);
Exercise1 // classes first example class Rectangle int width, height; void set_values (int,int); int area() return width*height; ; void Rectangle::set_values (int x, int y) width = x; height = y; int main
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Spring 2007 7p-9p, Thursday, March 1 Name: NetID: Lab Section
More informationNamespaces and Class Hierarchies
and 1 2 3 MCS 360 Lecture 9 Introduction to Data Structures Jan Verschelde, 13 September 2010 and 1 2 3 Suppose we need to store a point: 1 data: integer coordinates; 2 functions: get values for the coordinates
More informationCOEN244: Class & function templates
COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library
More informationProgramming in C++: Assignment Week 4
Programming in C++: Assignment Week 4 Total Marks : 20 March 22, 2017 Question 1 Using friend operator function, which set of operators can be overloaded? Mark 1 a.,, , ==, = b. +, -, /, * c. =,
More informationDo not write in this area TOTAL. Maximum possible points: 75
Name: Student ID: Instructor: Borja Sotomayor Do not write in this area 1 2 3 4 5 6 7 TOTAL Maximum possible points: 75 This homework assignment is divided into two parts: one related to the fundamental
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More information(3) Some memory that holds a value of a given type. (8) The basic unit of addressing in most computers.
CS 7A Final Exam - Fall 206 - Final Exam Solutions 2/3/6. Write the number of the definition on the right next to the term it defines. () Defining two functions or operators with the same name but different
More informationHomework 6. Yuji Shimojo CMSC 330. Instructor: Prof. Reginald Y. Haseltine
Homework 6 Yuji Shimojo CMSC 330 Instructor: Prof. Reginald Y. Haseltine July 21, 2013 Question 1 What is the output of the following C++ program? #include #include using namespace
More informationA <Basic> C++ Course
A C++ Course 5 Constructors / destructors operator overloading Julien DeAntoni adapted from Jean-Paul Rigault courses 1 2 This Week A little reminder Constructor / destructor Operator overloading
More informationA <Basic> C++ Course
A C++ Course 5 Constructors / destructors operator overloading Julien Deantoni adapted from Jean-Paul Rigault courses This Week A little reminder Constructor / destructor Operator overloading Programmation
More informationClasses. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT).
UNITII Classes Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT). It s a User Defined Data-type. The Data declared in a Class are called Data- Members
More informationExtra Credit: write mystrlen1 as a single function without the second parameter int mystrlen2(char* str)
CPSC 122 Study Guide 3: Final Examination The final examination will consist of three parts: Part 1 covers mostly C++. For this, see study guides 1 and 2, exams 1 and 2, and part of exam 3, and quizzes
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 informationGovernment Polytechnic, Muzaffarpur. Name of the Lab: OBJECT ORIENTED PROGRAMMING
Government Polytechnic, Muzaffarpur. Name of the Lab: OBJECT ORIENTED PROGRAMMING THROUGH C++ Practical: OOPS THROUGH C++ Subject Code: 1618407 PROGRAM NO.1 Programming exercise on executing a Basic C++
More information! A data type for which: ! In fact, an ADT may be implemented by various. ! Examples:
Ch. 8: ADTs: Stacks and Queues Abstract Data Type A data type for which: CS 8 Fall Jill Seaman - only the properties of the data and the operations to be performed on the data are specific, - not concerned
More informationExample Final Questions Instructions
Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.
More informationLinked List using a Sentinel
Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include
More informationInheritance and Polymorphism
Inheritance and Polymorphism 1 Inheritance extending a clock to an alarm clock deriving a class 2 Polymorphism virtual functions and polymorphism abstract classes MCS 360 Lecture 8 Introduction to Data
More informationSection Handout #4: Classes, Pointers, and Dynamic Memory
Nick Troccoli Section #4 CS 106X Week 5 Section Handout #4: Classes, Pointers, and Dynamic Memory Based on handouts by various current and past CS106B/X instructors and TAs. Extra practice problems: CodeStepByStep
More informationBinary Tree Implementation
Binary Tree Implementation Lecture 31 Sections 12.2-12.3 Robb T. Koether Hampden-Sydney College Mon, Apr 5, 2010 Robb T. Koether (Hampden-Sydney College) Binary Tree Implementation Mon, Apr 5, 2010 1 /
More informationI BSc(IT) [ Batch] Semester II Core: Object Oriented Programming With C plus plus - 212A Multiple Choice Questions.
Dr.G.R.Damodaran College of Science (Autonomous, affiliated to the Bharathiar University, recognized by the UGC)Reaccredited at the 'A' Grade Level by the NAAC and ISO 9001:2008 Certified CRISL rated 'A'
More informationUse the template below and fill in the areas in Red to complete it.
C++ with Inheritance Pproblem involving inheritance. You have to finish completing code that creates a class called shape, from which 3 classes are derived that are called square and triangle. I am giving
More informationInterview Questions of C++
Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.
More informationOverloading Operators in C++
Overloading Operators in C++ C++ allows the programmer to redefine the function of most built-in operators on a class-by-class basis the operator keyword is used to declare a function that specifies what
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 informationCS 211 Winter 2004 Sample Final Exam (Solutions)
CS 211 Winter 2004 Sample Final Exam (Solutions) Instructor: Brian Dennis, Assistant Professor TAs: Tom Lechner, Rachel Goldsborough, Bin Lin March 16, 2004 Your Name: There are 6 problems on this exam.
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 information