CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 28 OOPS IN C++ MICHAEL GROSSBERG
|
|
- June Mathews
- 6 years ago
- Views:
Transcription
1 CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 28 OOPS IN C++ MICHAEL GROSSBERG
2 FUNCTION OVERLOADING int f(int) double f(double) double f(double,int) string f(string) CALLS THE FUNCTION BASED ON WHAT IS PASSED TO IT
3 FUNCTION OVERLOADING UNLIKE PYTHON FUNCTION MUST TAKE THE RIGHT TYPE OR IT WON T EVEN CALL IT #include <iostream> using namespace std; int twice(int x) return (x+x); string twice(string x) return (x+x); int main() cout << twice(5) << endl; cout << twice(string("soup")) << endl; PROBLEM: REPEATING SAME CODE FOR EACH TYPE
4 TEMPLATES PARAMETERIZED TYPES S f(t) WHEN YOU WANT TO DO THE SAME THING FOR LOTS OF SIMILAR TYPES COMPILES COPY OF CODE FOR EACH TYPE YOU ACTUALLY USE
5 TEMPLATES #include <iostream> using namespace std; template<class T> T twice(t x) return (x+x); int main() cout << twice(5) << endl; cout << twice(string("soup")) << endl; DECLARE THAT T WILL BE A TEMPLATE USE TEMPLATE AS IF IT WERE A TYPE IF THIS IS ILLEGAL IT FIGURES THIS OUT WHEN IT TRYS TO MAKE AN INT AND STRING VERSION
6 GENERATING RANDOM NUMBERS #include <iostream> #include <cstdlib> using namespace std; int rand_int(int,int); int main() srand( time(null) ); for(int i = 0; i < 20; i++ ) printf( "Random number #%d: %d\n", i, rand_int(1,11)); int rand_int(int rand_min=0,int rand_max=rand_max) int range = rand_max-rand_min; return rand_min + (rand()%range); YOU WILL MISS SOME PYTHON LIBRARIES
7 ARRAY ARRAYS CAN HOLD ANYTHING const int ARRAY_SIZE = 20; int num_array[array_size]; TOTAL SIZE FIXED FILL ONLY PART
8 LIKE PRIMITIVE LISTS #include <iostream> #include <cstdlib> using namespace std; int main() const int ARRAY_SIZE = 20; int num_array[array_size]; srand( time(null) ); printf("array probably has junk in it.") for(int i = 0; i < ARRAY_SIZE; i++ ) printf( "num_array[%d]= %d\n", i, num_array[i]); //Always should clear it like this for(int i = 0; i < ARRAY_SIZE; i++ ) num_array[i]=0; GET ELEMENTS LIKE PYTHON LIST SET ELEMENTS LIKE PYTHON LIST ALWAYS CLEAR VARIABLES FIRST
9 OFF THE DEEP END #include <iostream> using namespace std; const int JUNK_NUM = ; void init_array(int [],int); int main() const int ARRAY_SIZE = 20; int num_array[array_size]; init_array(num_array,array_size); srand( time(null) ); // indexing past the end for(int i = ARRAY_SIZE-2; i < ARRAY_SIZE+1; i++ ) printf( "num_array[%d]= %d\n", i, num_array[i]); // This is SO wrong void init_array(int num_array[], int size) for(int i = 0; i < size; i++ ) num_array[i]=junk_num; TRICK: ALWAYS INITIALIZE WITH A EASY TO SPOT VALUE HUGE SECURITY PROBLEM PAST THE END!!!!!
10 VECTOR WORKS LIKE LIST #include <vector> vector<int> num_vect; THE VECTOR LIBRARY A VECTOR num_vect.push_back(9) num_vect[i] num_vect[i] = 7 YOU CAN READ PAST THE END AUTO RESIZE CAN GET SIZE CAN LOAD UP NEW ELEMENTS GET LIKE ARRAY SET LIKE ARRAY
11 #include <iostream> VECTOR WORKS LIKE LIST #include <cstdlib> #include <vector> #include <string> #include <sstream> using namespace std; string vect2string(vector<int> &); int rand_int(int,int); int main() const int VECT_SIZE = 20; vector<int> num_vect; int rand_num = 0; srand( time(null) ); cout << "num_vect = ["; cout << vect2string(num_vect) << "]" << endl; for (int i=0;i<vect_size;i++) rand_num = rand_int(0,11); //cout << "rand_num = " << rand_num<< endl; num_vect.push_back(rand_num); cout << "num_vect = ["; cout << vect2string(num_vect) << "]" << endl;
12 VECTOR2STRING (C++ STYLE) LIKE COUT ONLY PIPE GOES TO HOLDING TANK string vect2string(vector<int> &num_vect) string result=""; stringstream out; for(int i=0;i<num_vect.size();i++) out<<num_vect[i]; if ((1<num_vect.size())&&(i< (num_vect.size()-1))) out<<", "; return out.str(); FILL IT UP EMPTY IT OUT
13 CLASS POINT #include <iostream> using namespace std; class Point double x; double y; public: Point(double,double); double get_x() constreturn x; void set_x(double in_x)x=in_x; double get_y() constreturn y; void set_y(double in_y)y=in_y; ; Point::Point(double in_x=1,double in_y=1) x=in_x; y=in_y; return; ATTRIBUTES AND METHODS PRIVATE BY DEFAULT MAKE PUBLIC FOR OUTSIDE USE int main() Point p; cout << "p=(" << p.get_x()<< ", "<< p.get_y()<< ")\n"; p.set_x(7); p.set_y(.5); cout << "p=(" << p.get_x()<< ", "<< p.get_y()<< ")\n"; SETTERS/GETTERS DECLARE IMPLEMENT USE. TO ACCESS METHOD
14 C++ OPERATOR OVERLOADING int main() Point p; Point q; cout << "p=" << p << endl; q = p+p; cout << "p=" << q << endl; OVERLOAD + OVERLOAD COUT <<
15 OVERLOADING + #include <iostream> using namespace std; class Point... public: Point(double,double); Point operator+(point const&);... DECLARE IMPLEMENT ; Point Point::operator+ (Point const& other) Point sum = Point(x+other.get_x(),y+other.get_y()); return sum;
16 COUT << MYCLASS LIKE PYTHON STR METHOD BUT ostream& operator<<(ostream& os, Point& point) os << "(" << point.get_x() << ", "; os << point.get_y() << ")"; return os; NOT A CLASS METHOD... JUST OVERLOADING <<
17 CARDS.PY -> CARDS.CPP LENGTH C LINES OF CODE VS PYTHON 113 LINES OF CODE COMPLEXITY C++: MUCH MORE BOILER PLATE MUST BE VERY CAREFUL WITH CONST AND REFRENCES
18 #include <iostream> cards.push_back(in_cards[ind]); ; #include <string> Deck::Deck() #include <vector> bool Card::operator== (Card const& card) const ; for (int ind=0; ind < NUM_RANKS; ind++) #include <cassert> return (rank == card.rank); CardStack::CardStack(); for (int jnd=0; jnd < NUM_SUITS; jnd++) #include <iostream> cards.push_back(card(ind,jnd)); #include <algorithm> bool Card::operator!= (Card const& card) const CardStack CardStack::deal(int num_cards=2) using namespace std; return (rank!= card.rank); vector <Card> temp_cards; namespace cards for(int ind=0; ind < num_cards; ind++) ; const int NUM_SUITS = 4; bool Card::operator< (Card const& card) const temp_cards.push_back(cards[cards.size()-1-ind]); ; const string suits[] = "Clubs", "Diamonds", "Hearts", return (rank < card.rank); using namespace cards; "Spades"; for(int ind=0; ind < num_cards; ind++) int main () const int NUM_RANKS = 13; const string ranks[] = "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"; class Card int suit,rank; public: Card(int,int); string get_suit()return suits[suit];; string get_rank()return ranks[rank];; int value(); bool Card::operator<= (Card const& card) const cards.pop_back(); return (rank <= card.rank); A LOT OF CODE return CardStack(temp_cards); bool Card::operator> (Card const& card) const ; SAME return (rank > card.rank); FUNCTIONALITY void CardStack::sort() std::sort(cards.begin(),cards.end()); bool Card::operator>= (Card const& card) const ; MUCH HARDER TO MANAGE return (rank >= card.rank); void CardStack::shuffle() for(int ind = 0;ind < 7; ind++) ostream& operator<<(ostream& os, Card& card) std::random_shuffle(cards.begin(),cards.end()); vector <Card> my_cards; Card card(0,0); my_cards.push_back(card); Card card1(0,0); my_cards.push_back(card1); Card card2(1,1); my_cards.push_back(card2); CardStack stack(my_cards); stack.toostream(cout); bool operator== (Card const&) const; stack.sort(); bool operator!= (Card const&) const; os << card.get_rank() << " of " << card.get_suit(); ; stack.toostream(cout); bool operator< (Card const&) const; return os; CardStack CardStack::operator+(CardStack const& other) stack.shuffle(); bool operator<= (Card const&) const; vector <Card> temp_cards; stack.toostream(cout); bool operator> (Card const&) const; class CardStack for(int ind=0; ind < cards.size(); ind++) CardStack stack2(my_cards); bool operator>= (Card const&) const; protected: temp_cards.push_back(cards[ind]); stack2 = stack+stack; ; vector <Card> cards; stack2.toostream(cout); Card::Card (int r,int s) public: for(int ind=0; ind < other.cards.size(); ind++) cout << card ; assert(0<=r); CardStack(); temp_cards.push_back(other.cards[ind]); cout << endl; assert(r<13); CardStack(vector <Card> const&); cout << (card1==card) << endl; assert(0<=s); int size(); return CardStack(temp_cards); cout << (card2==card)<< endl; assert(s<4); ostream& toostream(ostream& os); ; Deck deck; rank=r; void sort(); ostream& CardStack::toOstream(ostream& os) cout << "Deck: "; suit=s; void shuffle(); deck.toostream(cout); ; CardStack deal(int); for (int ind=0; ind < cards.size();ind++) cout << endl << endl; int Card::value() CardStack operator+(cardstack const&); os << cards[ind]<< endl; deck.shuffle(); if (0==rank) ; deck.toostream(cout); return 11; int CardStack::size() return os; cout << endl << endl; else if (rank>9) return cards.size(); ; cout << "Hello World! "; // prints Hello World! return 10; class Deck:public CardStack cout << "I'm a C++ program\n\n"; // prints I'm a C++ program else CardStack::CardStack(vector <Card> const& in_cards) public: return 0; return rank+1; for (int ind=0;ind < in_cards.size();ind++) Deck();
19 PYTHON -> C++/JAVA/C# CODE FIRST IN PYTHON TO UNDERSTAND PROBLEM RECODE IN TARGET LANGUAGE RAPID PROTOTYPING
20 EXTENDING PYTHON CODE FIRST IN PYTHON DETERMINE WHERE PROGRAM IS SLOW WHERE WOULD C++/JAVA/C# LIBRARY HELP CALL FROM INSIDE PYTHON C++: USE WEAVE, BOOST, SIP, SWIG JAVA: USE JYTHON C#: USE IRON PYTHON
21 EMBEDDING PYTHON SOMETIMES YOU WANT PYTHON TO RUN INSIDE C++ EMBED EXAMPLE: BUILD A COMPLEX PROGRAM WANT TO INCLUDE AN INTERACTIVE SHELL WOULDN T THAT BE COOL IN PHOTOSHOP?
22 THANKS
CS11 Introduction to C++ Fall Lecture 1
CS11 Introduction to C++ Fall 2006-2007 Lecture 1 Welcome! 8 Lectures (~1 hour) Slides posted on CS11 website http://www.cs.caltech.edu/courses/cs11 7 Lab Assignments on course website Available on Monday
More informationBruce Merry. IOI Training Dec 2013
IOI Training Dec 2013 Outline 1 2 3 Outline 1 2 3 You can check that something is true using assert: #include int main() { assert(1 == 2); } Output: test_assert: test_assert.cpp:4: int main():
More information12/2/2009. The plan. References. References vs. pointers. Reference parameters. const and references. HW7 is out; new PM due date Finish last lecture
The plan 11/30 C++ intro 12/2 C++ intro 12/4 12/7 12/9 12/11 Final prep, evaluations 12/15 Final HW7 is out; new PM due date Finish last lecture David Notkin Autumn 2009 CSE303 Lecture 25 CSE303 Au09 2
More information//main.cpp. using namespace std;
Eric Villanueva CSE 330 Homework 1 (40/40) I d give myself a full 40 out of 40 points. I put a lot of effort into getting my code to work, I also used my own code for most of it. Question 1) #include
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 informationCS11 Intro C++ Spring 2018 Lecture 1
CS11 Intro C++ Spring 2018 Lecture 1 Welcome to CS11 Intro C++! An introduction to the C++ programming language and tools Prerequisites: CS11 C track, or equivalent experience with a curly-brace language,
More informationReview Questions II KEY
CS 102 / ECE 206 Spring 2011 Review Questions II KEY The following review questions are similar to the kinds of questions you will be expected to answer on Exam II (April 7), which will focus on LCR, chs.
More informationLecture 3 ADT and C++ Classes (II)
CSC212 Data Structure - Section FG Lecture 3 ADT and C++ Classes (II) Instructor: Feng HU Department of Computer Science City College of New York @ Feng HU, 2016 1 Outline A Review of C++ Classes (Lecture
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 informationThe Class Construct Part 2
The Class Construct Part 2 Lecture 24 Sections 7.7-7.9 Robb T. Koether Hampden-Sydney College Mon, Oct 29, 2018 Robb T. Koether (Hampden-Sydney College) The Class Construct Part 2 Mon, Oct 29, 2018 1 /
More informationCh 2 ADTs and C++ Classes
Ch 2 ADTs and C++ Classes Object Oriented Programming & Design Constructing Objects Hiding the Implementation Objects as Arguments and Return Values Operator Overloading 1 Object-Oriented Programming &
More informationG52CPP C++ Programming Lecture 17
G52CPP C++ Programming Lecture 17 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last Lecture Exceptions How to throw (return) different error values as exceptions And catch the exceptions
More informationComp151. Generic Programming: Container Classes
Comp151 Generic Programming: Container Classes Container Classes Container classes are a typical use for class templates, since we need container classes for objects of many different types, and the types
More informationCSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 27 CRASH COURSE IN C++ MICHAEL GROSSBERG
CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 27 CRASH COURSE IN C++ MICHAEL GROSSBERG FOR INITIALIZATION TEST INCREMENT for (int ind =0; ind < 16; ind++){ // Do stuff CODE BLOCK TABLE WITH FOR #include
More informationPIC 10A. Lecture 15: User Defined Classes
PIC 10A Lecture 15: User Defined Classes Intro to classes We have already had some practice with classes. Employee Time Point Line Recall that a class is like a souped up variable that can store data,
More informationPart of the Picture: Simulation
Part of the Picture: Simulation Random Number Generators The RandomInt Class The Part of the Picture: Simulation section in Chapter 5 referred to a class RandomInt, which can be used to conveniently generate
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationC++ Constructor Insanity
C++ Constructor Insanity CSE 333 Spring 2018 Instructor: Justin Hsia Teaching Assistants: Danny Allen Dennis Shao Eddie Huang Kevin Bi Jack Xu Matthew Neldam Michael Poulain Renshu Gu Robby Marver Waylon
More informationTopics. bool and string types input/output library functions comments memory allocation templates classes
C++ Primer C++ is a major extension of c. It is similar to Java. The lectures in this course use pseudo-code (not C++). The textbook contains C++. The labs involve C++ programming. This lecture covers
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 informationThe goal of this project is create a program to have a human user play against the computer.
CS 7B - Fall 217 - Assignment 4: The Game of Set. Due 12/4/17 The Game of Set Rules (this is a hyperlink to https://www.setgame.com/set/puzzle rules) should be studied carefully if you are still unsure
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 informationCSC 533: Organization of Programming Languages. Spring 2007
CSC 533: Organization of Programming Languages Spring 2007 Java vs. C++ C++ design goals C++ reliability features by-reference, const, new & delete, bool, string C++ OOP features classes, bindings, templates,
More information#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }
1. (9 pts) Show what will be output by the cout s in this program. As in normal program execution, any update to a variable should affect the next statement. (Note: boolalpha simply causes Booleans to
More informationCS11 Intro C++ Spring 2018 Lecture 3
CS11 Intro C++ Spring 2018 Lecture 3 C++ File I/O We have already seen C++ stream I/O #include cout > name; cout
More informationUnit 14. Passing Arrays & C++ Strings
1 Unit 14 Passing Arrays & C++ Strings PASSING ARRAYS 2 3 Passing Arrays As Arguments Can we pass an array to another function? YES!! Syntax: Step 1: In the prototype/signature: Put empty square brackets
More informationWhat is an algorithm?
Announcements CS 142 Inheritance/Polymorphism Wrapup Program 8 has been assigned - due Tuesday, Dec. 9 th by 11:55pm 11/21/2014 2 Definitions Class: description of a data type that can contain fields (variables)
More informationAN OVERVIEW OF C++ 1
AN OVERVIEW OF C++ 1 OBJECTIVES Introduction What is object-oriented programming? Two versions of C++ C++ console I/O C++ comments Classes: A first look Some differences between C and C++ Introducing function
More informationCSCE121: Introduction to Program Design and Concepts Practice Questions for Midterm 1
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CSCE121: Introduction to Program Design and Concepts Practice Questions for Midterm 1 March 11, 2018 Question 1: Identify the common elements of two sorted
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 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 informationPointers and Strings Prentice Hall, Inc. All rights reserved.
Pointers and Strings 1 sizeof operator Pointer Expressions and Pointer Arithmetic Relationship Between Pointers and Arrays Arrays of Pointers Case Study: Card Shuffling and Dealing Simulation sizeof operator
More informationCS197c: Programming in C++
CS197c: Programming in C++ Lecture 2 Marc Cartright http://ciir.cs.umass.edu/~irmarc/cs197c/index.html Administration HW1 will be up this afternoon Written assignment Due in class next week See website
More informationReview Questions for Final Exam
CS 102 / ECE 206 Spring 11 Review Questions for Final Exam The following review questions are similar to the kinds of questions you will be expected to answer on the Final Exam, which will cover LCR, chs.
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College November 22, 2017 Outline Outline 1 Chapter 12: C++ Templates Outline Chapter 12: C++ Templates 1 Chapter 12: C++ Templates
More informationProgramación de Computadores. Cesar Julio Bustacara M. Departamento de Ingeniería de Sistemas Facultad de Ingeniería Pontificia Universidad Javeriana
POINTERS Programación de Computadores Cesar Julio Bustacara M. Departamento de Ingeniería de Sistemas Facultad de Ingeniería Pontificia Universidad Javeriana 2018-01 Pointers A pointer is a reference to
More informationAbstract Data Types (ADT) and C++ Classes
Abstract Data Types (ADT) and C++ Classes 1-15-2013 Abstract Data Types (ADT) & UML C++ Class definition & implementation constructors, accessors & modifiers overloading operators friend functions HW#1
More informationCSE 333. Lecture 10 - references, const, classes. Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington
CSE 333 Lecture 10 - references, const, classes Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington Administrivia New C++ exercise out today, due Friday morning
More informationCS 11 C++ track: lecture 1
CS 11 C++ track: lecture 1 Administrivia Need a CS cluster account http://www.cs.caltech.edu/cgi-bin/ sysadmin/account_request.cgi Need to know UNIX (Linux) www.its.caltech.edu/its/facilities/labsclusters/
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++ basics Getting started with, and Data Types.
C++ basics Getting started with, and Data Types pm_jat@daiict.ac.in Recap Last Lecture We talked about Variables - Variables, their binding to type, storage etc., Categorization based on storage binding
More informationDistributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes
Distributed Real-Time Control Systems Lecture 17 C++ Programming Intro to C++ Objects and Classes 1 Bibliography Classical References Covers C++ 11 2 What is C++? A computer language with object oriented
More informationCS132 Algorithm. Instructor: Jialiang Lu Office: Information Center 703
CS132 Algorithm Instructor: Jialiang Lu Email: jialiang.lu@sjtu.edu.cn Office: Information Center 703 Chapter 3 STRUCTURES IN C 2 Structures Introduction Collections of related variables (aggregates) under
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 informationC and C++ I. Spring 2014 Carola Wenk
C and C++ I Spring 2014 Carola Wenk Different Languages Python sum = 0 i = 1 while (i
More informationDue Date: See Blackboard
Source File: ~/2315/45/lab45.(C CPP cpp c++ cc cxx cp) Input: under control of main function Output: under control of main function Value: 4 Integer data is usually represented in a single word on a computer.
More informationCIS 110 Introduction to Computer Programming Spring 2016 Midterm
CIS 110 Introduction to Computer Programming Spring 2016 Midterm Name: Recitation # (e.g., 201): Pennkey (e.g., eeaton): My signature below certifies that I have complied with the University of Pennsylvania
More informationChapter 6 - Pointers
Chapter 6 - Pointers Outline 1 Introduction 2 Pointer Variable Declarations and Initialization 3 Pointer Operators 4 Calling Functions by Reference 5 Using the const Qualifier with Pointers 6 Bubble Sort
More informationReview Questions for Final Exam KEY
CS 102 / ECE 206 Spring 11 Review Questions for Final Exam KEY The following review questions are similar to the kinds of questions you will be expected to answer on the Final Exam, which will cover LCR,
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 informationC++ Programming. Classes, Constructors, Operator overloading (Continued) M1 Math Michail Lampis
C++ Programming Classes, Constructors, Operator overloading (Continued) M1 Math Michail Lampis michail.lampis@dauphine.fr Classes These (and the previous) slides demonstrate a number of C++ features related
More information1. The term STL stands for?
1. The term STL stands for? a) Simple Template Library b) Static Template Library c) Single Type Based Library d) Standard Template Library Answer : d 2. Which of the following statements regarding the
More informationUnit 1: Preliminaries Part 4: Introduction to the Standard Template Library
Unit 1: Preliminaries Part 4: Introduction to the Standard Template Library Engineering 4892: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland May 6, 2010 ENGI
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 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 informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationC++: Overview and Features
C++: Overview and Features Richard Newman r.newman@rdg.ac.uk Room CS127 2003-12-11 Programming & Design, 2003 1 Introduction You have: used streams seen how classes are used seen some C++ code Today: good
More informationCS 162 Intro to CS II. Structs vs. Classes
CS 162 Intro to CS II Structs vs. Classes 1 Odds and Ends Assignment 1 questions Why does the delete_info have a double pointer to states as a parameter? Do your functions have to be 15 or under? Anymore???
More informationModule 9. Templates & STL
Module 9 Templates & STL Objectives In this module Learn about templates Construct function templates and class templates STL 2 Introduction Templates: enable you to write generic code for related functions
More informationECE 462 Midterm Exam 2. 10:30-11:20AM, October 19, 2007
ECE 462 Midterm Exam 2 10:30-11:20AM, October 19, 2007 1 Overloading and Overriding 1.1 Overloading in C++ and Java Answer: E A. In C++, if a function is overloaded, it cannot be overridden in a derived
More informationEECE.3220: Data Structures Spring 2017
EECE.3220: Data Structures Spring 2017 Lecture 14: Key Questions February 24, 2017 1. Describe the characteristics of an ADT to store a list. 2. What data members would be necessary for a static array-based
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 informationBasic Templates Intro
1 Basic Templates Intro C++ is a strongly typed language - there is strict set of rules on what types that variables can have, and when one type can be used as another type. e.g. conversion rules: my_int
More informationA SHORT COURSE ON C++
Introduction to A SHORT COURSE ON School of Mathematics Semester 1 2008 Introduction to OUTLINE 1 INTRODUCTION TO 2 FLOW CONTROL AND FUNCTIONS If Else Looping Functions Cmath Library Prototyping Introduction
More informationHomework 5. Yuji Shimojo CMSC 330. Instructor: Prof. Reginald Y. Haseltine
Homework 5 Yuji Shimojo CMSC 330 Instructor: Prof. Reginald Y. Haseltine July 13, 2013 Question 1 Consider the following Java definition of a mutable string class. class MutableString private char[] chars
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 informationLab Instructor : Jean Lai
Lab Instructor : Jean Lai Group related statements to perform a specific task. Structure the program (No duplicate codes!) Must be declared before used. Can be invoked (called) as any number of times.
More informationStandard Library. Lecture 27. Containers. STL Containers. Standard Library
Standard Library Lecture 27 Containers (templates) Streams (I/O facilities) Standard Library Portable, type-safe, efficient Try to use as much as possible Heavy use of templates Streams: #include
More informationObject Reference and Memory Allocation. Questions:
Object Reference and Memory Allocation Questions: 1 1. What is the difference between the following declarations? const T* p; T* const p = new T(..constructor args..); 2 2. Is the following C++ syntax
More informationarrays review arrays and memory arrays: character array example cis15 advanced programming techniques, using c++ summer 2008 lecture # V.
topics: arrays pointers arrays of objects resources: cis15 advanced programming techniques, using c++ summer 2008 lecture # V.1 some of this lecture is covered in parts of Pohl, chapter 3 arrays review
More informationC++ Programming Classes. Michael Griffiths Corporate Information and Computing Services The University of Sheffield
C++ Programming Classes Michael Griffiths Corporate Information and Computing Services The University of Sheffield Email m.griffiths@sheffield.ac.uk Presentation Outline Differences between C and C++ Object
More informationIII. Classes (Chap. 3)
III. Classes III-1 III. Classes (Chap. 3) As we have seen, C++ data types can be classified as: Fundamental (or simple or scalar): A data object of one of these types is a single object. int, double, char,
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 informationType Aliases. Examples: using newtype = existingtype; // C++11 typedef existingtype newtype; // equivalent, still works
Type Aliases A name may be defined as a synonym for an existing type name. Traditionally, typedef is used for this purpose. In the new standard, an alias declaration can also be used C++11.Thetwoformsareequivalent.
More informationObject-Oriented Programming
Object-Oriented Programming Section 3: Classes and inheritance (1) Piotr Mielecki, Ph. D. piotr.mielecki@pwr.edu.pl pmielecki@gmail.com Class vs. structure declaration Inheritance and access specifiers
More informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationFunctions. Introduction :
Functions Introduction : To develop a large program effectively, it is divided into smaller pieces or modules called as functions. A function is defined by one or more statements to perform a task. In
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 informationGenerics/Templates. Steven R. Bagley
Generics/Templates Steven R. Bagley Code reuse Often we implement a class Only to find that next week, we need to reuse it with just a slight tweak Collections, Containers are good examples class CIntStack
More information1 Templates. 1 int sum(const int x, const int y) { 2 return x + y; 3 } For this function to work with doubles, it must be modified to the following:
1 Templates We have seen that functions can take arguments of specific types and have a specific return type. We now consider templates, which allow us to work with generic types. Through templates, rather
More informationpointers + memory double x; string a; int x; main overhead int y; main overhead
pointers + memory computer have memory to store data. every program gets a piece of it to use as we create and use more variables, more space is allocated to a program memory int x; double x; string a;
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 informationthe gamedesigninitiative at cornell university Lecture 7 C++ Overview
Lecture 7 Lecture 7 So You Think You Know C++ Most of you are experienced Java programmers Both in 2110 and several upper-level courses If you saw C++, was likely in a systems course Java was based on
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 25, 2017 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Function Details Assert Statements
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 informationOutline. User-dened types Categories. Constructors. Constructors. 4. Classes. Concrete classes. Default constructor. Default constructor
Outline EDAF50 C++ Programming 4. Classes Sven Gestegård Robertz Computer Science, LTH 2018 1 Classes the pointer this const for objects and members Copying objects friend inline 4. Classes 2/1 User-dened
More informationNote 11/13/2014. They are like those i s, j s, and temp s that appear and disappear when the function starts and finishes...
CISC 2000 Computer Science II Fall, 2014 Note 11/13/2014 1 Review of operator overloading (a) Lab class: take-away ############################ # Pass-by-value parameters # ############################
More informationCS 215 Fundamentals of Programming II Spring 2011 Project 2
CS 215 Fundamentals of Programming II Spring 2011 Project 2 20 points Out: February 2, 2011 Due: February 9, 2011 Reminder: Programming Projects (as opposed to Homework exercises) are to be your own work.
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 informationOperators. The Arrow Operator. The sizeof Operator
Operators The Arrow Operator Most C++ operators are identical to the corresponding Java operators: Arithmetic: * / % + - Relational: < = >!= Logical:! && Bitwise: & bitwise and; ^ bitwise exclusive
More informationEECS402 Lecture 02. Functions. Function Prototype
The University Of Michigan Lecture 02 Andrew M. Morgan Savitch Ch. 3-4 Functions Value and Reference Parameters Andrew M. Morgan 1 Functions Allows for modular programming Write the function once, call
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 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 informationCMSC 202 Midterm Exam 1 Fall 2015
1. (15 points) There are six logic or syntax errors in the following program; find five of them. Circle each of the five errors you find and write the line number and correction in the space provided below.
More information1 Unit 8 'for' Loops
1 Unit 8 'for' Loops 2 Control Structures We need ways of making decisions in our program To repeat code until we want it to stop To only execute certain code if a condition is true To execute one segment
More informationEL2310 Scientific Programming
(pronobis@kth.se) Overview Overview Wrap Up Introduction to Object Oriented Paradigm More on and Members Operator Overloading Last time Intro to C++ Differences between C and C++ Intro to OOP Today Object
More informationEL2310 Scientific Programming
Lecture 16: STL, C++1y (ramviyas@kth.se) Overview Overview Lecture 16: STL and C++1y Reminders Wrap up C++11 Reminders The help sessions and deadline C++ help session: Fri 24.10.2015, 15:00-17:00, Room
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More informationSemantics of C++ Hauptseminar im Wintersemester 2009/10 Templates
Semantics of C++ Hauptseminar im Wintersemester 2009/10 Templates Sebastian Wild Technische Universität München 11.01.2010 Abstract In this work we will discuss about templates in C++, especially their
More information