EX3 Code Review. Instructor: Tsung-Che Chiang
|
|
- Geraldine Whitehead
- 6 years ago
- Views:
Transcription
1 EX3 Code Review Instructor: Tsung-Che Chiang Department of Computer Science and Information Engineering National Taiwan Normal University The Practice of Programming, Fall, 2010
2 Exercise Write a classstring to simulatestd::string. class String public: // 1. default constructor // 2. copy constructor // 3. constructor with one parameter with type const char * // 4. destructor // 5. size() // 6. c_str() // 7. copy assignment // 8. operator [] // 9. operator += private: char *str_; ; // A. operator < // B. operator << 2
3 String(const char *) String::String(const char *from) ptr = (char*) malloc(strlen(from)+1); strcpy(ptr, from); ptr[strlen(from)] = '\0'; redundant String::String(const char* s) str_ = new char[ strlen(s + 1) ]; for( int i=0; i<strlen(s); i++ ) str_[i] = s[i]; str_[strlen(s)] = '\0'; wrong size
4 String(const char *) String::String(const char *ptr) int length = 0; while(ptr[length]!= '\0') length++; length++; str_ = new char[length]; for(int i = 0; i < length;i++) str_[i] = ptr[i]; Use library to save your time.
5 String & operator = (const String &) String & operator = ( const String &assign ) str_ = new char[strlen(assign.str_)+1]; strcpy( str_, assign.str_ ); memory leak return? String & String:: operator =(const String &rhs ) if( this == &rhs ) return *this ; delete str_; use delete [] this-> str_ = rhs.str_; return *this ; double pointers to same location
6 String & operator = (const String &) String & String::operator = (const String &rhs) if(this == &rhs) return *this; delete [] this->str_; int rhs_length = rhs.size(); this->str_ = new char[rhs_length+1]; //strcpy(this->str_, rhs.c_str()); memcpy(this->str_, rhs.c_str(), rhs_length+1); delete too early why memcpy for strcpy? return *this;
7 String & operator = (const String &) String String::operator=(const char * input) size_t newsize=strlen(input); if(size_!=newsize) delete [] str; size_=newsize; str=new char[size_+1]; strcpy(str,input); return *this; delete too early Copy-and-swap is still applicable. String& String::operator= (const String &rhs) strcpy(str, rhs.str); return *this; enough space?
8 String & operator += (const String &) String & operator += (const String & tail) char *temp = (char *)malloc(sizeof(char)*strlen(str_)+1); strcpy(temp, str_); free(str_); redundant str_=(char*)malloc(sizeof(char)*strlen(temp)+ sizeof(char)*strlen(tail.str_)+1); strcpy(str_, temp); strcat(str_, tail.str_); free(temp); return *this; ; String & String::operator += ( const String &tail) String temp( str_); str_ = new char [strlen(str_)+strlen(tail.str_)+1]; strcpy( str_, temp.str_); strcat( str_, tail.str_); memory leak return? 8
9 String & operator += (const String &) String & String::operator += (const String &tail) char *temp = new char[strlen(str_) + 1]; strcpy (temp, str_); delete []str_; redundant str_ = new char[strlen(temp) + strlen(tail.str_) + 1]; strcpy (str_, temp); strcat (str_, tail.str_); delete []temp; return *this; String & operator += ( const String &tail ) strcat( str_, tail.str_ ); enough space? return?
10 String & operator += (const String &) String & operator +=(const String &tail) char * temp=new char[strlen(str_)+1]; temp=str_; str_=new char[strlen(str_)+strlen(tail.str_)+1]; strcat(strcpy(str_,temp),tail.str_); delete temp; delete [] String & operator +=(const String &tail) int totallen=strlen(str_)+strlen(tail.str_); char *newstr; newstr =new char[totallen + 1]; memset(newstr,'\0',totallen + 1); strcat(newstr,(*this).str_); strcat(newstr,tail.str_); str_=newstr; return (*this); memory leak return? initialization memory leak
11 String & operator += (const String &) String &String::operator += (const String &tail) char * str = new char[ strlen(tail.str_) + strlen( str_ ) + 1 ]; strcpy( str, str_ ); strcat( str, tail.str_ ); str[ strlen(tail.str_) + strlen( str_ ) ] = '\0'; delete [] str_; str_ = str; return *this; redundant
12 String & operator += (const String &) String& String::operator += (const String &from) char *ans = (char*) malloc( this->size() + from.size() + 1 ); ans = strcpy(ans, ptr); ans = strcat(ans, from.ptr); String anst(ans); free(ans); String::swap(&anst, this); redundant return *this;
13 String & operator += (const String &) char & String::operator+=( const String & tial) size_=size_+tial.size(); char* temp=new char[size_+1]; temp[0]='\0'; strcat(temp,str); strcat(temp,tial.c_str()); delete[] str; str=temp; return *str;
14 bool operator < (const String &, const String &) bool operator < (const String & lhs, const String &rhs) //strcmp if(strcmp(lhs.c_str(), rhs.c_str())==-1) return true; else return false; not following the standard bool operator < ( const String &lhs, const String &rhs) if( strcmp( lhs.c_str(), rhs.c_str()) < 0) return true; else return false; redundant
15 bool operator < (const String &, const String &) bool operator < (const String &lhs, const String &rhs) for(int i=0;i<lhs.size()&&i<rhs.size();i++) if(lhs[i]==rhs[i]) continue; if(lhs[i] < rhs[i]) return true; else return false; if(lhs.size() < rhs.size()) return true; else return false; Library is better than your handmade codes.
16 bool operator < (const String &, const String &) bool operator < (const String &a, const String &b) int al = a.size(); What if a and b are the same? for(int i = 0; i <= al; i++) if(a[i] < b[i]) return true; if(a[i] > b[i]) return false; Library is better than your handmade codes. bool operator< ( const String & lhs, const String & rhs) if(strcmp(lhs.c_str(),rhs.c_str())<0) return true; Else?
17 bool operator < (const String &, const String &) bool operator < (const String &lhs, const String &rhs) return ((strcmp (lhs.c_str(), rhs.c_str()) < 0)? true : false); redundant bool operator < (const String& lhs, const String& rhs) return strcmp(lhs.c_str(), rhs.c_str()) == -1; bool operator < (const String &left, const String &right) return(left.size() < right.size()); non-standard unusual
18 Misc istream &operator>>( istream & input, String &data) char temp[100]; input >> temp; data=temp; return input; char String::operator [] (int index) const if (index < strlen(str_)) return str_[index]; Else?
19 Misc Const-ness int size() return strlen( str_); char *c_str()const return str_; Incomplete implementation void String::swap(String & input) char * tempptr=str; str = input.str; input.str=tempptr; size_t tempsize=size_; size_=input.size_;
20 Organization bool operator <(const String &lhs,const String &rhs) return strcmp ( lhs.c_str(), rhs.c_str() )<0; ostream& operator <<(ostream &output, const String &rhs) output <<rhs.c_str()<<endl; return output; Do not put non-inline functions in.h. Remember to add #include guard.
21 Exercise #ifndef NTNU_MYSTRING #define NTNU_MYSTRING MyString.h #include <iosfwd> class String public: String(); String(const String &rhs); String & operator= (const String &rhs); String(const char *rhs); ~String(); unsigned int size() const; const char *c_str() const; char operator[] (int index) const; char & operator[] (int index); String & operator += (const String &tail); void swap(string &rhs); private: char *str_; ; bool operator < (const String &lhs, const String &rhs); std::ostream & operator << (std::ostream &os, const String &rhs); #endif
22 Exercise #include "MyString.h" #include <iostream> #include <algorithm> #include <cstring> using std::ostream; MyString.cpp (1/3) String::String() str_ = new char [1]; str_[0] = '\0'; // String::String(const String &rhs) str_ = new char[sizeof(rhs.str_)+1]; strcpy(str_, rhs.str_); // String::String(const char *rhs) str_ = new char[sizeof(rhs)+1]; strcpy(str_, rhs); // String::~String() delete [] str_;
23 Exercise unsigned int String::size() const MyString.cpp (2/3) return strlen(str_); // a lazy and inefficient implementation // const char * String::c_str() const return str_; // void String::swap(String &rhs) std::swap(str_, rhs.str_); // String & String::operator= (const String &rhs) String temp(rhs); swap(temp); return *this; //
24 Exercise char String::operator[] (int index) const return str_[index]; // note. I do not check the boundary. // char & String::operator[] (int index) return str_[index]; // note. I do not check the boundary. // String & String::operator += (const String &tail) char *old = str_; str_ = new char [strlen(str_)+strlen(tail.str_)+1]; strcat(strcpy(str_, old), tail.str_); delete [] old; return *this; // bool operator < (const String &lhs, const String &rhs) return strcmp(lhs.c_str(), rhs.c_str()) < 0; // ostream & operator << (ostream &os, const String &rhs) os << rhs.c_str(); return os; MyString.cpp (3/3)
25 Exercise #include <cstdlib> #include <iostream> #include "MyString.h" main.cpp (1/2) using namespace std; void readonly(const String &s) cout << s[0] << endl; // s[0] = 'b'; // compilation error int main(int argc, char *argv[]) String empty, ntnu("ntnu"), ntnu2(ntnu); cout << empty << ' ' << ntnu << ' ' << ntnu2 << endl; empty = ntnu; // copy assignment cout << empty << endl; // << operator char cstr[] = "aab"; ntnu = "aaa"; ntnu2 = cstr; // conversion + copy assignment // conversion + copy assignment
26 Exercise int main() //... main.cpp (2/2) if (ntnu < ntnu2) // operator < cout << "aaa < aab" << endl; readonly(ntnu); // operator [] const ntnu[0] = 'd'; // operator [] cout << ntnu << endl; (ntnu += ntnu2) += " haha"; // operator += cout << ntnu << endl; system("pause"); return 0;
Linked 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 informationOperator Overloading
Operator Overloading Introduction Operator overloading Enabling C++ s operators to work with class objects Using traditional operators with user-defined objects Requires great care; when overloading is
More informationIntroduction. W8.2 Operator Overloading
W8.2 Operator Overloading Fundamentals of Operator Overloading Restrictions on Operator Overloading Operator Functions as Class Members vs. as friend Functions Overloading Stream Insertion and Extraction
More informationCS 115 Exam 3, Spring 2010
Your name: Rules You must briefly explain your answers to receive partial credit. When a snippet of code is given to you, you can assume o that the code is enclosed within some function, even if no function
More informationW8.2 Operator Overloading
1 W8.2 Operator Overloading Fundamentals of Operator Overloading Restrictions on Operator Overloading Operator Functions as Class Members vs. as friend Functions Overloading Stream Insertion and Extraction
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 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 informationDynamic arrays / C Strings
Dynamic arrays / C Strings Dynamic arrays syntax why use C strings Ex: command line arguments Call-by-pointer Dynamic Arrays / C Strings [Bono] 1 Announcements Final exam: Tue, 5/8, 8 10 am SGM 124 and
More informationC-String Library Functions
Strings Class 34 C-String Library Functions there are several useful functions in the cstring library strlen: the number of characters before the \0 strncat: concatenate two strings together strncpy: overwrite
More informationOperator Overloading
Operator Overloading Introduction Operator overloading Enabling C++ s operators to work with class objects Using traditional operators with user-defined objects Requires great care; when overloading is
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 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 informationStrings and Stream I/O
Strings and Stream I/O C Strings In addition to the string class, C++ also supports old-style C strings In C, strings are stored as null-terminated character arrays str1 char * str1 = "What is your name?
More informationEngineering Problem Solving with C++, Etter
Engineering Problem Solving with C++, Etter Chapter 6 Strings 11-30-12 1 One Dimensional Arrays Character Strings The string Class. 2 C style strings functions defined in cstring CHARACTER STRINGS 3 C
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 informationProgram template-smart-pointers-again.cc
1 // Illustrate the smart pointer approach using Templates 2 // George F. Riley, Georgia Tech, Spring 2012 3 // This is nearly identical to the earlier handout on smart pointers 4 // but uses a different
More informationCS 222: Pointers and Manual Memory Management
CS 222: Pointers and Manual Memory Management Chris Kauffman Week 4-1 Logistics Reading Ch 8 (pointers) Review 6-7 as well Exam 1 Back Today Get it in class or during office hours later HW 3 due tonight
More informationObject Oriented Programming COP3330 / CGS5409
Object Oriented Programming COP3330 / CGS5409 Multiple Inheritance Template Classes and Functions Inheritance is supported by most object oriented languages C++ allows a special kind of inheritance known
More informationSet Implementation Version 1
Introduction to System Programming 234122 Set Implementation Version 1 Masha Nikolski, CS Department, Technion 1 // Version 1.0 2 // Header file for set class. 3 // In this implementation set is a container
More informationCSE 303, Autumn 2006, Final Examination 12 December 2006
CSE 303, Autumn 2006, Final Examination 12 December 2006 Solutions Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one two-sided 8.5"x11" piece
More informationObject oriented programming
Exercises 12 Version 1.0, 9 May, 2017 Table of Contents 1. Virtual destructor and example problems...................................... 1 1.1. Virtual destructor.......................................................
More informationData Structures and Algorithms(4)
Ming Zhang Data Structures and Algorithms Data Structures and Algorithms(4) Instructor: Ming Zhang Textbook Authors: Ming Zhang, Tengjiao Wang and Haiyan Zhao Higher Education Press, 2008.6 (the "Eleventh
More informationCS 115 Final Review Quiz
CS115FinalReviewQuiz December11,2008 Rules ReferencematerialontheSTLclassesandalgorithms,aswellasfunctions thatoperateonc strings,isincludedattheendofthisdocument. Youmustbrieflyexplainyouranswerstoreceivepartialcredit.
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 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 informationConstruction, Destruction, and Assignment
Construction, Destruction, and Assignment Instructor: Tsung-Che Chiang tcchiang@ieee.org Department of Computer Science and Information Engineering National Taiwan Normal University The Practice of Programming,
More informationtypedef Labeling<unsigned char,short> LabelingBS; typedef Labeling<unsigned char,short>::regioninfo RegionInfoBS;
2005 7 19 1 ( ) Labeling 2 C++ STL(Standard Template Library) g++ (GCC) 3.3.2 3 3.1 Labeling SrcT DstT SrcT: unsigned char, shoft DstT: short typedef 1. unsigned char, short typedef Labeling
More informationPointers, Dynamic Data, and Reference Types
Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple
More informationChapter 10 - Notes Applications of Arrays
Chapter - Notes Applications of Arrays I. List Processing A. Definition: List - A set of values of the same data type. B. Lists and Arrays 1. A convenient way to store a list is in an array, probably a
More informationAdvanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short
More information! A C-string is a sequence of characters stored in consecutive memory locations and terminated by a null character ( \0').
C-Strings! Problem: A direct-mail advertising agency has decided to personalize its sweepstakes offers. It has prepared a basic letter with a particular customer's name. address, spouse's name, and other
More informationการทดลองท 8_2 Editor Buffer Array Implementation
การทดลองท 8_2 Editor Buffer Array Implementation * File: buffer.h * -------------- * This file defines the interface for the EditorBuffer class. #ifndef _buffer_h #define _buffer_h * Class: EditorBuffer
More informationCharacters, c-strings, and the string Class. CS 1: Problem Solving & Program Design Using C++
Characters, c-strings, and the string Class CS 1: Problem Solving & Program Design Using C++ Objectives Perform character checks and conversions Knock down the C-string fundamentals Point at pointers and
More informationLecture 8: Object-Oriented Programming (OOP) EE3490E: Programming S1 2017/2018 Dr. Đào Trung Kiên Hanoi Univ. of Science and Technology
Lecture 8: Object-Oriented Programming (OOP) 1 Introduction to C++ 2 Overview Additional features compared to C: Object-oriented programming (OOP) Generic programming (template) Many other small changes
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 informationOperator Overloading in C++ Systems Programming
Operator Overloading in C++ Systems Programming Operator Overloading Fundamentals of Operator Overloading Restrictions on Operator Overloading Operator Functions as Class Members vs. Global Functions Overloading
More informationCommon Misunderstandings from Exam 1 Material
Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationChapter 18 - C++ Operator Overloading
Chapter 18 - C++ Operator Overloading Outline 18.1 Introduction 18.2 Fundamentals of Operator Overloading 18.3 Restrictions on Operator Overloading 18.4 Operator Functions as Class Members vs. as friend
More informationProgram template-smart-pointers.cc
1 // Illustrate the smart pointer approach using Templates 2 // George F. Riley, Georgia Tech, Spring 2012 3 4 #include 5 #include 6 7 using namespace std; 8 9 // The Ptr class contains
More informationSpring 2008 Data Structures (CS301) LAB
Spring 2008 Data Structures (CS301) LAB Objectives The objectives of this LAB are, o Enabling students to implement Singly Linked List practically using c++ and adding more functionality in it. o Enabling
More informationCOMS W3101 Programming Language: C++ (Fall 2015) Ramana Isukapalli
COMS W3101 Programming Language: C++ (Fall 2015) ramana@cs.columbia.edu Lecture-2 Overview of C continued C character arrays Functions Structures Pointers C++ string class C++ Design, difference with C
More informationDue Date: See Blackboard
Source File: ~/2305/lab06.(C CPP cpp c++ cc cxx cp) Input: Under control of main function Output: Under control of main function Value: 2 Extend the IntegerSet class from Lab 04 to provide the following
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 informationPointers and Arrays CS 201. This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book.
Pointers and Arrays CS 201 This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book. Pointers Powerful but difficult to master Used to simulate pass-by-reference
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 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 informationObject oriented programming
Exercises 7 Version 1.0, 11 April, 2017 Table of Contents 1. Inheritance.................................................................. 1 1.1. Tennis Player...........................................................
More informationOBJECT ORIENTED PROGRAMMING USING C++
OBJECT ORIENTED PROGRAMMING USING C++ Overview of C++ Overloading Overloading occurs when the same operator or function name is used with different signatures Both operators and functions can be overloaded
More informationCOMS W3101 Programming Language: C++ (Fall 2015) Ramana Isukapalli
COMS W3101 Programming Language: C++ (Fall 2015) ramana@cs.columbia.edu Lecture-2 Overview of C continued C character arrays Functions Structures Pointers C++ string class C++ Design, difference with C
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 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 Memory regions 2 EACH C++ VARIABLE IS STORED IN A
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 informationChapter 2. Procedural Programming
Chapter 2 Procedural Programming 2: Preview Basic concepts that are similar in both Java and C++, including: standard data types control structures I/O functions Dynamic memory management, and some basic
More informationName. CPTR246 Spring '17 (100 total points) Exam 2
Name CPTR246 Spring '17 (100 total points) Exam 2 1. Pointer parameters (the old C way) In the following program, make all of the changes to convert the call-by-reference parameters in the function computeoptions
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 informationObject oriented programming
Exercises 4 Version 1.0, 16 March, 2017 Table of Contents 1. Friend functions, dynamic memory allocation.................................. 1 1.1. Example 1..............................................................
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 informationUEE1303(1070) S 12 Object-Oriented Programming in C++
Computational Intelligence on Automation Lab @ NCTU UEE1303(1070) S 12 Object-Oriented Programming in C++ Lecture 01: C/C++ Overview and OOP by Example Learning Objectives You should be able to review/understand:
More informationUnified Modeling Language a case study
Unified Modeling Language a case study 1 an online phone book use case diagram encapsulating a file 2 Command Line Arguments arguments of main arrays of strings 3 Class Definition the filesphonebook.h
More informationData Structures and Algorithms
Data Structures and Algorithms First Semester 2017/2018 Linked Lists Eng. Anis Nazer Linked List ADT Is a list of nodes Each node has: data (can be any thing, int, char, Person, Point, day,...) link to
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 informationDue Date: See Blackboard
Source File: ~/2315/11/lab11.(C CPP cpp c++ cc cxx cp) Input: Under control of main function Output: Under control of main function Value: 1 The purpose of this assignment is to become more familiar with
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 informationReference Parameters A reference parameter is an alias for its corresponding argument in the function call. Use the ampersand (&) to indicate that
Reference Parameters There are two ways to pass arguments to functions: pass-by-value and pass-by-reference. pass-by-value A copy of the argument s value is made and passed to the called function. Changes
More informationCSS 342 Data Structures, Algorithms, and Discrete Mathematics I. Lecture 2. Yusuf Pisan
CSS 342 Data Structures, Algorithms, and Discrete Mathematics I Lecture 2 Yusuf Pisan Compiled helloworld yet? Overview C++ fundamentals Assignment-1 CSS Linux Cluster - submitting assignment Call by Value,
More informationAssignment 2 Solution
Assignment 2 Solution Date.h #ifndef DATE_H #define DATE_H #include class Date time_t date; public: Date(); Date(const Date&) = default; Date(time_t); // Date in time_t format Date(const char*);
More informationstd::string Quick Reference Card Last Revised: August 18, 2013 Copyright 2013 by Peter Chapin
std::string Quick Reference Card Last Revised: August 18, 2013 Copyright 2013 by Peter Chapin Permission is granted to copy and distribute freely, for any purpose, provided the copyright notice above is
More informationDue Date: See Blackboard
Source File: ~/2315/06/lab06.(C CPP cpp c++ cc cxx cp) Input: Under control of main function Output: Under control of main function Value: 2 Extend the IntegerSet class from Lab 04 to provide the following
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 informationCS 115 Exam 3, Fall 2009
CS115Exam3,Fall2009 Yourname: Rules Youmustbrieflyexplainyouranswerstoreceivepartialcredit. Whenasnippetofcodeisgiventoyou,youcanassume o thatthecodeisenclosedwithinsomefunction,evenifnofunction definitionisshown
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 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 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 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 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 informationUEE1303(1070) S12: Object-Oriented Programming Operator Overloading and Function Overloading
UEE1303(1070) S12: Object-Oriented Programming Operator Overloading and Function Overloading What you will learn from Lab 7 In this laboratory, you will learn how to use operator overloading and function
More informationJordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A
Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Name: ID#: Section #: Day & Time: Instructor: Answer all questions as indicated. Closed book/closed
More informationCS 115 Final Exam, Spring 2009
CS115FinalExam,Spring2009 Yourname: Rules ReferencematerialontheSTLclassesandalgorithms,aswellasfunctions thatoperateonc strings,isincludedattheendofthisdocument. Youmustbrieflyexplainyouranswerstoreceivepartialcredit.
More informationDiscussion 1E. Jie(Jay) Wang Week 10 Dec.2
Discussion 1E Jie(Jay) Wang Week 10 Dec.2 Outline Dynamic memory allocation Class Final Review Dynamic Allocation of Memory Recall int len = 100; double arr[len]; // error! What if I need to compute the
More informationC:\Temp\Templates. Download This PDF From The Web Site
11 2 2 2 3 3 3 C:\Temp\Templates Download This PDF From The Web Site 4 5 Use This Main Program Copy-Paste Code From The Next Slide? Compile Program 6 Copy/Paste Main # include "Utilities.hpp" # include
More informationChapter 5. Section 5.4 The Common String Library Functions. CS 50 Hathairat Rattanasook
Chapter 5 Section 5.4 The Common String Library Functions CS 50 Hathairat Rattanasook Library Functions We already discussed the library function fgets() Library functions are available: to find the length
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 7 September 21, 2016 CPSC 427, Lecture 7 1/21 Brackets Example (continued) Storage Management CPSC 427, Lecture 7 2/21 Brackets Example
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 informationDue Date: See Blackboard
Source File: ~/2315/04/lab04.(C CPP cpp c++ cc cxx cp) Input: Under control of main function Output: Under control of main function Value: 3 In this assignment create an IntegerSet class that will provide
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 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 informationMORE STRINGS AND RECURSION
MORE STRINGS AND RECURSION Problem Solving with Computers-I https://ucsb-cs16-wi17.github.io/ Take out your Homework 13 Q1: How are ordinary arrays of characters and C-strings similar and how are they
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 informationCS 31 Review Sheet. Tau Beta Pi - Boelter Basics 2. 2 Working with Decimals 2. 4 Operators 3. 6 Constants 3.
CS 31 Review Sheet Tau Beta Pi - Boelter 6266 Contents 1 Basics 2 2 Working with Decimals 2 3 Handling Strings and Numbers with stdin/stdout 3 4 Operators 3 5 Common Mistakes/Misconceptions 3 6 Constants
More informationArizona s First University. More ways to show off--controlling your Creation: IP and OO ECE 373
Arizona s First University. More ways to show off--controlling your Creation: IP and OO ECE 373 Overview Object Creation Control Distribution Possibilities Impact of design decisions on IP control 2 Good
More informationAbstraction and Encapsulation. Benefits of Abstraction & Encapsulation. Concrete Types. Using Typedefs to streamline classes.
Classes II: Type Conversion,, For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Abstraction and Encapsulation Abstraction: Separation of interface from
More informationCSE 333 Lecture 9 - intro to C++
CSE 333 Lecture 9 - intro to C++ Hal Perkins Department of Computer Science & Engineering University of Washington Administrivia & Agenda Main topic: Intro to C++ But first: Some hints on HW2 Labs: The
More information3. Functions. Modular programming is the dividing of the entire problem into small sub problems that can be solved by writing separate programs.
1 3. Functions 1. What are the merits and demerits of modular programming? Modular programming is the dividing of the entire problem into small sub problems that can be solved by writing separate programs.
More informationQueue Implementations
Queue Implementations 1 Circular Queues buffer of fixed capacity improvements and cost estimates 2 Deques the double ended queue queue as double linked circular list MCS 360 Lecture 17 Introduction to
More informationString Class in C++ When the above code is compiled and executed, it produces result something as follows: cin and strings
String Class in C++ The standard C++ library provides a string class type that supports all the operations mentioned above, additionally much more functionality. We will study this class in C++ Standard
More informationMidterm Review. PIC 10B Spring 2018
Midterm Review PIC 10B Spring 2018 Q1 What is size t and when should it be used? A1 size t is an unsigned integer type used for indexing containers and holding the size of a container. It is guarenteed
More informationCopying Data. Contents. Steven J. Zeil. November 13, Destructors 2
Steven J. Zeil November 13, 2013 Contents 1 Destructors 2 2 Copy Constructors 11 2.1 Where Do We Use a Copy Constructor? 12 2.2 Compiler-Generated Copy Constructors............................................
More informationCOMSW Introduction to Computer Programming in C
OMSW 1003-1 Introduction to omputer Programming in Lecture 23 Spring 2011 Instructor: Michele Merler http://www1.cs.columbia.edu/~mmerler/comsw1003-1.html 1 Today Trees (from PP hapter 17) ++ and object
More information2 2
1 2 2 3 3 C:\Temp\Templates 4 5 Use This Main Program 6 # include "Utilities.hpp" # include "Student.hpp" Copy/Paste Main void MySwap (int Value1, int Value2); int main(int argc, char * argv[]) { int A
More information