Classes, The Rest of the Story
|
|
- Joy Quinn
- 5 years ago
- Views:
Transcription
1 Classes, The Rest of the Story 1
2 1. Is the following syntax legal in Java: class MyException extends Exception { class Test { static void f( ) throws MyException { throw MyException(); // (A) public static void main( String[] args ) { try { f(); catch( MyException e ) { System.out.println( "caught MyException" ); 2
3 2. Is the following syntax legal in Java: class MyException extends Exception { class Test { static void f( ) { // (A) public static void main( String[] args ) { try { f(); catch( MyException e ) { System.out.println( "caught MyException" ); 3
4 3. Is the following syntax legal in Java: class MyException extends Exception { class Err extends Exception { class Test { static void f( int j ) throws MyException, Err { if ( j == 1 ) throw new MyException(); if ( j == 2 ) throw new Err(); public static void main( String[] args ) { try { f( 1 ); catch( MyException e ) { catch( Err e ) { try { f( 2 ); catch( MyException e ) { catch( Err e ) { 4
5 4. Is the following syntax legal in Java? class MyException extends Exception { class Err extends Exception { class Test { static void f() throws MyException { throw new MyException(); static void g() throws Err { throw new Err(); static void h() throws MyException, Err { f(); g(); public static void main( String[] args ) { try { h(); catch( Exception e ) { // (A) e.printstacktrace(); 5
6 6
7 5. What is exception specification? Is it always required in C++ and Java? 7
8 6. Is the following syntax legal in Java? class MyException extends Exception { String message; class Test { static void f() throws MyException { throw new MyException( "Hello from f()" ); // (C) public static void main( String[] args ) { try { f(); catch( MyException e ) { System.out.println( e.message ); 8
9 Access Control of Constructors Constructors are not always placed in the public section of a class. Sometimes, it is necessary to place one or more constructors in the private or the protected section. While this forbids certain forms of object creation, it makes possible other behaviors by the class. 9
10 //Singleton.java class X { private int n; private static X unique; private X( int m ){ n = m; //(A) //(B) public static X makeinstanceofx() { if ( unique == null ) unique = new X( 10 ); return unique; //(C) class Test { public static void main( String[] args ) { X xobj_1 = X.makeInstanceOfX(); X xobj_2 = X.makeInstanceOfX(); if ( xobj_1 == xobj_2 ) System.out.println( "The two X objects are the same" ) 10
11 //Singleton.cc #include <iostream> class X { int n; static X* unique; //(A) public: X( int m ){ n = m; //(B) X( const X& ); //(C) X& operator=( const X& ); //(D) ; static X& makeinstanceofx() { if ( unique == 0 ) unique = new X( 10 ); return *unique; //(E) X* X::unique = 0 ; //(F) bool operator==( const X& obj1, const X& obj2 ) { return &obj1 == &obj2? true : false; //(G) 11
12 int main() { X& xobj_1 = X::makeInstanceOfX(); X& xobj_2 = X::makeInstanceOfX(); if ( xobj_1 == xobj_2 ) cout << "The two X objects are the same" << endl; // X xobj_3 = xobj_1 //(H) // xobj_2 = xobj_1; //(I) return 0; 12
13 Limiting the Access to No-Arg Constructor in C++ A constructor that in certain situations is a good candidate for the private or the protected section of a C++ class is the no-arg constructor. 13
14 //NoArgMissing.cc #include <vector> class X { int p; public: X( int m ) : p(m) { ; int main() { X xob; // Error, no-arg constructor missing X arr[ 100 ]; // Error, no-arg constructor missing vector<x> vec1( 100 ); // Error, no-arg constructor missing // OK, no-arg constructor not needed: vector<x> vec2; X xobj( 12 ); vec2.push_back( xobj ); return 0; //(A) 14
15 X(){ X() : p( 0 ) { 15
16 //PrivateConstructor.cc #include <vector> using namespace std; class X { friend class vector<x>; int p; X(){ public: X( int m ) : p(m) { ; //(B) //(C) int main() { // X xob1; // Error, no-arg constructor private // X arr[ 100 ]; // Error, no-arg constructor private vector<x> vec(100); X xob2( 12 ); vec[0] = xob2; return 0; // OK now 16
17 Can Multiple Constructors Help Each Other? When multiple constructors are defined for a class, can they help each other during the construction of an object of the class? The answer to this is yes in Java and no in ISO compatible C++. 17
18 //MultiConstructors.java class X { int x; int y; X() { x = 5; //(A) X( int m ) { //(B) this(); //(C) y = m; public static void main( String[] args ) { X xobj = new X( 100 ); System.out.println ( "x: " + xobj.x + " y: " + xobj.y ); 18
19 Static Members in C++ A static member of a class is global to all objects of the class. A static member is also sometimes called a class variable. A static member does not belong to any particular object of that class. There is exactly one copy per class of such a member, as opposed to one copy per object for non-static members. 19
20 //Static1.cc #include <iostream> using namespace std; class X { public: int m; static int n; static const int p; static const int q = 51; X( int mm ) { m = mm; ; int X::n = 100; const int X::p = 101; //(A) //(B) int main() { cout << "static n: " << X::n << endl; // 100 //(C) X xobj_1( 20 ); cout << xobj_1.m << " " << xobj_1.n << endl; // X xobj_2( 40 ); cout << xobj_2.m << " " << xobj_2.n << endl; //
21 X::n = 1000; cout << xobj_1.m << " " << xobj_1.n << endl; // cout << xobj_2.m << " " << xobj_2.n << endl; // return 0; 21
22 //Static2.cc #include <iostream> using namespace std; class X { static int n; public: int m; X( int mm ) { m = mm; ; static int getn() { return n; //(A) static void setn( int nn ) { n = nn; //(B) int X::n = 100; //(C) int main() { cout << "static n: " << X::getn() << endl; // 100 X xobj_1( 20 ); cout << xobj_1.m << " " << xobj_1.getn() << endl; // X xobj_2( 40 ); cout << xobj_2.m << " " << xobj_2.getn() << endl; // X::setn( 1000 ); 22
23 cout << xobj_1.m << " " << xobj_1.getn() << endl; // cout << xobj_2.m << " " << xobj_2.getn() << endl; // return 0; 23
24 //Date.cc #include <iostream> using namespace std; class Date { int d, m, y; static Date today; public: Date( int dd = 0, int mm = 0, int yy = 0 ); static void settoday(int, int, int); static Date gettoday() { return today; ; void print() { cout << "day: " << d << " month: " << m << " year: " << y << endl; ; //(A) //(B) Date::Date( int dd, int mm, int yy ) { d = dd? dd : today.d; m = mm? mm : today.m; y = yy? yy : today.y; void Date::setToday( int dd, int mm, int yy ) { today = Date(dd, mm, yy); //(C) 24
25 Date Date::today( 31, 10, 2001 ); //(D) int main() { Date d1( 1, 1, 1970); d1.print(); // day: 1 month: 1 year: 1970 Date d2( 2 ); d2.print(); // day: 2 month: 10 year: 2001 Date::setToday(3, 4, 2000); // (E) Date::getToday().print(); // day: 3 month: 4 year: 2000 Date d3( 7 ); d3.print(); // day: 7 month: 4 year: 2000 Date d4 = Date(); d4.print(); // day: 3 month: 4 year: 2000 return 0; 25
26 //Robot.cc #include <iostream> #include <string> using namespace std; class Robot { int idnum; static int nextidnum; // (A) string owner; public: int getidnum(); int whatisnextidnum(); // (B) string getowner(); Robot( string ownername); void print() { cout << idnum << " " << owner << endl; ; int Robot::nextIdNum = 1; // (C) int Robot::whatIsNextIdNum() { return nextidnum++; int Robot::getIdNum() { return idnum; string Robot::getOwner() { return owner; Robot::Robot( string name ) { idnum = whatisnextidnum(); owner = name; // (D) // (E) 26
27 int main() { Robot r1( "ariel" ); r1.print(); Robot r2( "mauriel" ); r2.print(); Robot r3( "mercurial" ); r3.print(); return 0; // 1 ariel // 2 mauriel // 3 mercurial 27
28 Initialization and Destruction of Static Objects in C++ One of the more interesting aspects of C++ is that there is usually more to the main of a program than meets the eye, especially if the program includes static class members and their initializations in global scope. 28
29 //StaticInit.cc #include <iostream> class X { public: X() { cout << "X s constructor invoked" << endl; ~X() { cout << "X s destructor invoked" << endl; ; class Y { public: static X xobj; ; X Y::xobj; //(A) //(B) int main() { cout << "This is the first executable statement of main" << endl; //(C) return 0; 29
Extending Classes (contd.) (Chapter 15) Questions:
Extending Classes (contd.) (Chapter 15) Questions: 1 Virtual Functions in C++ Employee /\ / \ ---- Manager 2 Case 1: class Employee { string firstname, lastname; //... Employee( string fnam, string lnam
More informationCS360 Lecture 5 Object-Oriented Concepts
Tuesday, February 17, 2004 Last Time CS360 Lecture 5 Object-Oriented Concepts On Thursday I introduced the basics of object-oriented programming. We covered: - Creating public classes (each public class
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 informationThe Notion of a Class and Some Other Key Ideas (contd.) Questions:
The Notion of a Class and Some Other Key Ideas (contd.) Questions: 1 1. WHO IS BIGGER? MR. BIGGER OR MR. BIGGER S LITTLE BABY? Which is bigger? A class or a class s little baby (meaning its subclass)?
More informationECE 462 Midterm Exam 1. 10:30-11:20AM, September 21, 2007
ECE 462 Midterm Exam 1 10:30-11:20AM, September 21, 2007 1 Template Classes and the STL Library 1.1 Container Classes Which statement is correct? Answer: B A. An element can be inserted anywhere in a stack.
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 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 informationProgramming in C++: Assignment Week 8
Programming in C++: Assignment Week 8 Total Marks : 20 September 9, 2017 Question 1 Consider the following code segment. Mark 2 void myfunction(int test) { try { if (test) throw test; else throw "Value
More information21. Exceptions. Advanced Concepts: // exceptions #include <iostream> using namespace std;
- 147 - Advanced Concepts: 21. Exceptions Exceptions provide a way to react to exceptional circumstances (like runtime errors) in our program by transferring control to special functions called handlers.
More informationPOLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE
Abstract Base Classes POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors class B { // base class virtual void m( ) =0; // pure virtual function class D1 : public
More informationPOLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors
POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors CSC 330 OO Software Design 1 Abstract Base Classes class B { // base class virtual void m( ) =0; // pure virtual
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 informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationC++ Namespaces, Exceptions
C++ Namespaces, Exceptions CSci 588: Data Structures, Algorithms and Software Design http://www.cplusplus.com/doc/tutorial/namespaces/ http://www.cplusplus.com/doc/tutorial/exceptions/ http://www.cplusplus.com/doc/tutorial/typecasting/
More informationExtending Classes (contd.) (Chapter 15) Questions:
Extending Classes (contd.) (Chapter 15) Questions: 1 1. The following C++ program compiles without any problems. When run, it even prints out the hello called for in line (B) of main. But subsequently
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 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 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 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 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 informationFunctions and Methods. Questions:
Functions and Methods Questions: 1 1. What is a reference in C++? 2 2. In the following code, which variable is being declared as a reference? Also, suppose we attempt to change the object of a reference,
More informationProgramming 2. Object Oriented Programming. Daniel POP
Programming 2 Object Oriented Programming Daniel POP Week 4 Agenda 1. Self-reference 2. Modifiers: static 3. Modifiers: const 4. Modifiers: mutable 5. Modifiers: friend Wrap-up last week Constructors Definition:
More informationCOMP322 - Introduction to C++ Lecture 10 - Overloading Operators and Exceptions
COMP322 - Introduction to C++ Lecture 10 - Overloading Operators and Exceptions Dan Pomerantz School of Computer Science 19 March 2012 Overloading operators in classes It is useful sometimes to define
More informationHomework 4. Any questions?
CSE333 SECTION 8 Homework 4 Any questions? STL Standard Template Library Has many pre-build container classes STL containers store by value, not by reference Should try to use this as much as possible
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 informationClasses and Objects in C++
Classes and Objects in C++ Shahram Rahatlou Computing Methods in Physics http://www.roma1.infn.it/people/rahatlou/cmp/ Anno Accademico 2018/19 Today s Lecture Classes data members and member functions
More informationExceptions, Case Study-Exception handling in C++.
PART III: Structuring of Computations- Structuring the computation, Expressions and statements, Conditional execution and iteration, Routines, Style issues: side effects and aliasing, Exceptions, Case
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 informationW3101: Programming Languages C++ Ramana Isukapalli
Lecture-6 Operator overloading Namespaces Standard template library vector List Map Set Casting in C++ Operator Overloading Operator overloading On two objects of the same class, can we perform typical
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 informationImplementing an ADT with a Class
Implementing an ADT with a Class the header file contains the class definition the source code file normally contains the class s method definitions when using Visual C++ 2012, the source code and the
More informationECE Fall 20l2, Second Exam
ECE 30862 Fall 20l2, Second Exam DO NOT START WORKING ON THIS UNTIL TOLD TO DO SO. LEAVE IT ON THE DESK. You have until 12:20 to take this exam. Your exam should have 16 pages total (including this cover
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 informationWhat is an algorithm?
Announcements CS 142 Objects/Classes in C++ Program 7 has been assigned - due Sunday, April 19 th by 11:55pm 4/16/2015 CS 142: Object-Oriented Programming 2 Definitions A class is a struct plus some associated
More informationWhat is an algorithm?
Announcements CS 142 Objects/Classes in C++ Program 7 has been assigned - due Sunday, Nov. 23 rd by 11:55pm 2 Definitions A class is a struct plus some associated functions that act upon variables of that
More informationCSC 330 Object-Oriented Programming. Exception Handling CSC 330
Object-Oriented Programming Exception Handling 1 C++ Exception Handling Topics Exception Handling C++ Exception Handling Basics Throwing and Catching Exceptions Constructors, Destructors and Exceptions
More informationModule 7 b. -Namespaces -Exceptions handling
Module 7 b -Namespaces -Exceptions handling C++ Namespace Often, a solution to a problem will have groups of related classes and other declarations, such as functions, types, and constants. C++provides
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 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 informationECE 462 Exam 1. 6:30-7:30PM, September 22, 2010
ECE 462 Exam 1 6:30-7:30PM, September 22, 2010 I will not receive nor provide aid to any other student for this exam. Signature: You must sign here. Otherwise, the exam is not graded. This exam is printed
More informationG52CPP C++ Programming Lecture 16
G52CPP C++ Programming Lecture 16 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last Lecture Casting static cast dynamic cast const cast reinterpret cast Implicit type conversion 2 How
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 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 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 information05-01 Discussion Notes
05-01 Discussion Notes PIC 10B Spring 2018 1 Exceptions 1.1 Introduction Exceptions are used to signify that a function is being used incorrectly. Once an exception is thrown, it is up to the programmer
More informationCS 225. Data Structures
CS 5 Data Structures 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main() { int *x = new int; int &y = *x; y = 4; cout
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 information1. Find the output of following java program. class MainClass { public static void main (String arg[])
1. Find the output of following java program. public static void main(string arg[]) int arr[][]=4,3,2,1; int i,j; for(i=1;i>-1;i--) for(j=1;j>-1;j--) System.out.print(arr[i][j]); 1234 The above java program
More informationFriends and Overloaded Operators
Friend Function Friends and Overloaded Operators Class operations are typically implemented as member functions Some operations are better implemented as ordinary (nonmember) functions CSC 330 OO Software
More informationSFU CMPT Topic: Classes
SFU CMPT-212 2008-1 1 Topic: Classes SFU CMPT-212 2008-1 Topic: Classes Ján Maňuch E-mail: jmanuch@sfu.ca Friday 15 th February, 2008 SFU CMPT-212 2008-1 2 Topic: Classes Encapsulation Using global variables
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 22 November 28, 2016 CPSC 427, Lecture 22 1/43 Exceptions (continued) Code Reuse Linear Containers Ordered Containers Multiple Inheritance
More informationFriends and Overloaded Operators
Friends and Overloaded Operators Friend Function Class operations are typically implemented as member functions Some operations are better implemented as ordinary (nonmember) functions CSC 330 OO Software
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 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 informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 20 November 12, 2018 CPSC 427, Lecture 20, November 12, 2018 1/26 Rethrowing Exceptions Uncaught Exceptions Singleton Design Pattern Smart
More informationCMPS 221 Sample Final
Name: 1 CMPS 221 Sample Final 1. What is the purpose of having the parameter const int a[] as opposed to int a[] in a function declaration and definition? 2. What is the difference between cin.getline(str,
More informationClasses, objects. Static, const, mutable members of a class
Classes, objects. Static, const, mutable members of a class Static Members of a class have to be defined and initialized. They are defined only inside the body of the class. -static functions do not allow
More informationDynamically Allocated Data Members, Overloading Operators
Dynamically Allocated Data Members, Overloading Operators Shahram Rahatlou Computing Methods in Physics http://www.roma1.infn.it/people/rahatlou/cmp/ Anno Accademico 2018/19 Today s Lecture More on dynamically
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 informationDistributed Real-Time Control Systems. Lecture 14 Intro to C++ Part III
Distributed Real-Time Control Systems Lecture 14 Intro to C++ Part III 1 Class Hierarchies The human brain is very efficient in finding common properties to different entities and classify them according
More informationProgramming in C++: Assignment Week 8
Programming in C++: Assignment Week 8 Total Marks : 20 Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology Kharagpur 721302 partha.p.das@gmail.com April 12,
More informationLecture 7. Log into Linux New documents posted to course webpage
Lecture 7 Log into Linux New documents posted to course webpage Coding style guideline; part of project grade is following this Homework 4, due on Monday; this is a written assignment Project 1, due next
More informationECE462Exam3. 08:10-09:20AM, November 20, 2009
ECE462Exam3 08:10-09:20AM, November 20, 2009 IcertifythatIwillnotreceivenorprovideaidtoanyotherstudentforthisexam. Signature: Youmustsignhere.Otherwise,theexamisnotgraded. This exam is printed double sides.
More informationCS3157: Advanced Programming. Outline
CS3157: Advanced Programming Lecture #12 Apr 3 Shlomo Hershkop shlomo@cs.columbia.edu 1 Outline Intro CPP Boring stuff: Language basics: identifiers, data types, operators, type conversions, branching
More informationRecharge (int, int, int); //constructor declared void disply();
Constructor and destructors in C++ Constructor Constructor is a special member function of the class which is invoked automatically when new object is created. The purpose of constructor is to initialize
More informationVariables. Data Types.
Variables. Data Types. The usefulness of the "Hello World" programs shown in the previous section is quite questionable. We had to write several lines of code, compile them, and then execute the resulting
More informationThis examination has 11 pages. Check that you have a complete paper.
MARKING KEY The University of British Columbia MARKING KEY Computer Science 252 2nd Midterm Exam 6:30 PM, Monday, November 8, 2004 Instructors: K. Booth & N. Hutchinson Time: 90 minutes Total marks: 90
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 informationC++ Programming Assignment 3
C++ Programming Assignment 3 Author: Ruimin Zhao Module: EEE 102 Lecturer: Date: Fei.Xue April/19/2015 Contents Contents ii 1 Question 1 1 1.1 Specification.................................... 1 1.2 Analysis......................................
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 informationCMSC 202 Section 010x Spring Justin Martineau, Tuesday 11:30am
CMSC 202 Section 010x Spring 2007 Computer Science II Final Exam Name: Username: Score Max Section: (check one) 0101 - Justin Martineau, Tuesday 11:30am 0102 - Sandeep Balijepalli, Thursday 11:30am 0103
More informationCOE318 Lecture Notes Week 10 (Nov 7, 2011)
COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:
More informationCS
CS 1666 www.cs.pitt.edu/~nlf4/cs1666/ Programming in C++ First, some praise for C++ "It certainly has its good points. But by and large I think it s a bad language. It does a lot of things half well and
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 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 informationCS 162, Lecture 25: Exam II Review. 30 May 2018
CS 162, Lecture 25: Exam II Review 30 May 2018 True or False Pointers to a base class may be assigned the address of a derived class object. In C++ polymorphism is very difficult to achieve unless you
More 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 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 informationCS 31 Discussion: Final Week. Taylor Caulfield
CS 31 Discussion: Final Week Taylor Caulfield Overview for this Week Review Practice Problems Review Topics to Study Control Flow (if/switch branch, for/while/do-while loop) Functions/Parameters Arrays
More information04-24/26 Discussion Notes
04-24/26 Discussion Notes PIC 10B Spring 2018 1 When const references should be used and should not be used 1.1 Parameters to constructors We ve already seen code like the following 1 int add10 ( int x
More informationECE 462 Fall 2011, Third Exam
ECE 462 Fall 2011, Third Exam DO NOT START WORKING ON THIS UNTIL TOLD TO DO SO. You have until 9:20 to take this exam. Your exam should have 12 pages total (including this cover sheet). Please let Prof.
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
Exercises 12 Version 1.0, 9 May, 2017 Table of Contents 1. Virtual destructor and example problems...................................... 1 1.1. Virtual destructor.......................................................
More informationException with arguments
Exception Handling Introduction : Fundamental Syntax for Exception Handling code : try catch throw Multiple exceptions Exception with arguments Introduction Exception: An abnormal condition that arises
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 information1 Short Answer (5 Points Each)
1 Short Answer ( Points Each) 1. Find and correct the errors in the following segment of code. int x, *ptr = nullptr; *ptr = &x; int x, *ptr = nullptr; ptr = &x; 2. Find and correct the errors in the following
More informationC++ without Classes. CMSC433, Fall 2001 Programming Language Technology and Paradigms. More C++ without Classes. Project 1. new/delete.
CMSC433, Fall 2001 Programming Language Technology and Paradigms Adam Porter Sept. 4, 2001 C++ without Classes Don t need to say struct New libraries function overloading confusing link messages default
More informationMultiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
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 informationFunction Overloading
Function Overloading C++ supports writing more than one function with the same name but different argument lists How does the compiler know which one the programmer is calling? They have different signatures
More informationThe University of Nottingham
The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 2 MODULE, AUTUMN SEMESTER 2009-2010 C/C++ for Java Programmers Time allowed TWO hours Candidates may complete the front cover of their answer
More informationDistributed Real-Time Control Systems. Chapter 13 C++ Class Hierarchies
Distributed Real-Time Control Systems Chapter 13 C++ Class Hierarchies 1 Class Hierarchies The human brain is very efficient in finding common properties to different entities and classify them according
More informationObject-Oriented Programming (OOP) Fundamental Principles of OOP
Object-Oriented Programming (OOP) O b j e c t O r i e n t e d P r o g r a m m i n g 1 Object-oriented programming is the successor of procedural programming. The problem with procedural programming is
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 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 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 informationProgramming 2. Object Oriented Programming. Daniel POP
Programming 2 Object Oriented Programming Daniel POP Week 5 Agenda 1. Modifiers: friend 2. Objects Wrap-up last week Self-reference Modifiers: static const mutable Object Oriented Programming Friends (I)
More informationGlobal & Local Identifiers
Global & Local Identifiers the portions of a program where an identifier is defined (may be used). a variable declared inside a Block. from the Declaration statement to the end of the Block void fun()
More informationOBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING LAB 3 CLASES AND OBJECTS (CONTINUATION), CONSTRUCTOR WITH PARAMETERS, COPY CONSTRUCTOR. FRIEND FUNCTIONS. In the prior lab we saw that we can initialize with values the attributes
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 information