#include <iostream> #include <cstdlib>
|
|
- Bridget Sutton
- 5 years ago
- Views:
Transcription
1 Classes and Objects
2 Classes The structure data type can be used in both C and C++ Usually a structure is used to store just data, however it can also be used to store functions that can work on the data. In C++ we store the data and the operation that can be performed on that data together in the same entity. This entity is know as a class
3 #include <iostream> #include <cstdlib> typedef struct Point { float x; float y; float z; Point(float _x, float _y, float _z){ x=_x; y=_y; z=_z; } void print(){ std::cout<<"["<<x<<","<<y<<","<<z<<"]\n"; } }Point_t; int main() { Point p(2,3,4); p.print(); return EXIT_SUCCESS; }
4 The Anatomy of a class A Class has two parts (just like an ADT) a private (hidden) part a public interface The public part defines the behaviour of the object (methods) The private part contains the data (attributes) It is normal practice to put attributes in the private part of the class where they can only be accessed by methods
5 Special Class Methods Methods are functions which operate upon the data in the class There are two special methods which allow us to create and destroy any data in the object Constructor (used to set the default attribute values of the object) Destructor (used to clear any memory allocated in the constructor)
6 Class Access Scope Classes allow different levels of access to various elements of the class Unlike structure where every element is visible. There are 3 areas of access public : visible to all private : hidden and only accessible to the class itself protected : only visible to descendants of the main class (used in Inheritance we shall see this later in the year)
7 mutable vs immutable A mutable object is one where the data may be modified after creation. An immutable object once created may not be modified We can further add to this distinction by mixing elements of both in a class Methods may also be tagged to say if they modify the internal state of the class or not. This is a form of C++ etiquette know as const correctness whilst not mandated by the language it should be considered as part of the design of our classes and methods. Adding const correctness at a later date is usually very painful
8 Unified Modelling Language (UML) Unified Modelling Language (UML) is a standardised general-purpose modelling language UML has a number of graphical element which allows us to describe various components of a software system in a standardised way We shall use the UML notation for class diagram when designing our classes as well as other elements from the UML 2.x standard
9 Basic Class Diagrams Superclass 1 to Many relationship A Class hierarchy Class 1 * Class Subclass using inheritance 0 or 1 to Many relationship Superclass Class 0..1 * Class Subclass Subclass Subclass
10 A more detailed class Class Name A unique name for out class Attribute Attribute Operation Operation A number of attributes A list of methods
11 Specifying Attributes Colour - m_r : float - m_g : float Symbol Visibility - m_b : float + public - m_a : float # protected attributes are specified in the following way - private [visibility] name : [data type] data type is any class type or built in data type
12 Specifying Methods Colour - m_r : float - m_g : float - m_b : float - m_a : float + Red() : float + Red(_r : float) + Green() : float + Green(_g : float) + Blue() : float + Blue(_b : float) + Alpha() : float + Alpha(_a : float) Symbol Visibility + public # protected - private Methods are defined as follows [visibility] Name( [param] ) : [return type] param := [name] : [data type] can have param,param...
13 Accessors and Mutators In the previous example we had the methods opposite These methods are know as Accessors (or Get methods) the one returning the value And Mutators ( or Set Methods ) which is used to set the class attribute value You will notice the get method has a const at the end of the definition as it doesn t mutate the class 1 accessor method to get the red attribute 2 m_r the red colour intensity value 3 4 inline float Red() 5 { 6 return m_r; 7 } const 8 mutator method to set the red colour intensity value 9 [in] _r the red value to set inline void Red( 12 float _r 13 ) 14 { 15 m_r = _r; 16 }
14 Accessors (Priess 1998) An accessor is a method that accesses (returns) an attribute of an object but doesn t modify the object In the simplest case, an accessor just returns the value of one of the attributes. In general, an accessor performs some computation using the attributes as long as that computation does not modify any of the attributes.
15 Mutators (Priess 1998) A mutator is a method that can modify an object. In the simplest case, a mutator just assigns a new value to one of the attributes. In general, a mutator performs some computation and modifies any number of attributes.
16 Classes It is standard practice to split the class into two separate files. A.h Header file is used to define the class and prototype the methods and data for this class. A.cpp file is used to contain the actual class code and algorithmic elements. To link these two elements together we need to tell the compiler which class the methods in the.cpp file belong to.
17 C++ Scope Resolution Operator :: The :: (scope resolution) operator is used to qualify hidden names so that you can still use them. This is how C++ allows us to have different classes with the same member function names (polymorphism) We use the :: to imply membership to a particular class and differentiate the different methods / class relationships
18 1 #ifndef COLOUR_H 2 #define COLOUR_H 3 4 class Colour 5 { 6 public : ///\brief default constructor set all values to 0 except alpha 10 inline Colour() : 11 m_r(0.0f), 12 m_g(0.0f), 13 m_b(0.0f), 14 m_a(1.0f){;} /// \brief constructor passing in r g b components 17 _r red component 18 _g green component 19 _b blue component 20 _a the alpha component inline Colour( 23 const Real _r, 24 const Real _g, 25 const Real _b, 26 const Real _a 27 ) : 28 m_r(_r), 29 m_g(_g), 30 m_b(_b), 31 m_a(_a){;} private : 34 the red colour component 35 float m_r; 36 the green colour component 37 float m_g; 38 the blue colour component 39 float m_b; 40 the alpha colour component 41 float m_a; }; #endif C++ class syntax we use the class keyword to define a class class [name] { }; { }; scope defines members of the class public : defines publicly visible area private : defines hidden area classes are usually defined in a.h file
19 inline methods In the previous example the inline pre-fix is used to tell the compiler that the Colour constructor methods are part of the header file This is actually pertinent to older compilers however modern compilers will tend to do their own thing. Usually we only use this when we want to define the code in the header. This may also be a factor when defining templates.
20 inline methods Let the compiler do the work (it can optimise better than us) At -O2 optimisation level the inlining is done when the compiler thinks it is worth doing (a heuristic is used) and if it will not increase the size of the code. At -O3 it is done whenever the compiler thinks it is worth doing, regardless of whether it will increase the size of the code. Additionally, at all levels of optimisation (enabled optimisation that is), static functions that are called only once are inlined.
21 Single File Inclusion header files define interfaces for functions, structures, unions and classes They may also define variables, however if this header file is then included in more than one module the linker will complain as the same variable is defined twice. To overcome this problem we can use Single File Inclusion The traditional way of doing this is as follows Use the name of the Header file as an identifier for the pre-processor and create a unique #define name place a #include directive in the code to define the module name If the #define does not exist then it will be included if it does there is no need to include it again.
22 Colour.h 1 #ifndef COLOUR_H 2 #define COLOUR_H 3 #include Colour.h File1.cpp 4 class Colour 5 { COLOUR_H not defined 6 public : So we define it and the rest of the code to the #endif 9 10 }; #endif #include Colour.h File2.cpp COLOUR_H is defined so skip to the #endif
23 Constructors (ctor) When an object is created there are certain processes which must take place Instantiation always involves the allocation of memory for the objects state data. The methods do not require and memory as these are consistent for all objects of the class and are handled in the class itself. The special method which allocates the memory for an object is know as the 'constructor' There are three basic types of constructor The default constructor User defined Constructor The Copy Constructor
24 The default constructor The default constructor takes no parameters and has no return type It performs no processing on the object data just memory allocation It will always be called by the compiler if no user defined constructor is provided The default constructor is not referred to by the programmer in the class definition
25 User Defined Constructors These constructors may be used to pass parameter values to the object These may be used to set default object values It is possible to have more than one constructor in a class passing different parameters This is known as overloading and gives more flexibility to the way the object can be instantiated
26 Colour - m_r : float - m_g : float - m_b : float - m_a : float + Colour() + Colour(_r : float, _g : float, _b : float, _a : float) + Red() : float + Red(_r : float) + Green() : float + Green(_g : float) + Blue() : float + Blue(_b : float) + Alpha() : float + Alpha(_a : float) User defined default constructor User defined parameterised constructor
27 default ctor 1 default constructor set all values 2 /// to 0 except alpha which is set to 1 3 inline Colour() : 4 m_r(0.0f), 5 m_g(0.0f), set each of the attributes to a default value by calling it s own ctor* 6 m_b(0.0f), 7 m_a(1.0f){;} no other code * yes float has a constructor as do all C++ data types 1 int a = int(2); 2 float b = float(4.5);
28 user defined ctor 1 constructor passing in r g b a components 2 _r red component 3 _g green component 4 _b blue component 5 _a the alpha component 6 7 inline Colour( 8 const Real _r, 9 const Real _g, 10 const Real _b, 11 const Real _a 12 ) : 13 m_r(_r), 14 m_g(_g), 15 m_b(_b), 16 m_a(_a){;} here we are passing in individual values to set the class attributes with
29 The copy ctor The copy constructor creates a new class as a copy of an existing class As the classes are of the same type they both know about each others internal state (private attributes) To stop mutation of the class being copied we must make it read only To do this we use the const prefix on the ctor parameter being passed in.
30 Copy ctor 1 constructor passing in a Colour 2 _c the colour to use 3 4 inline Colour( 5 const Colour &_c 6 ) : 7 m_r(_c.m_r), 8 m_g(_c.m_g), 9 m_b(_c.m_b), 10 m_a(_c.m_a){;} use const to make the class passed in read only use. to access the class attributes m_r(_c.m_r) is basically saying set the current class member m_r to the value of the parameter passed in _c.m_r
31 References are Aliases not Pointers A reference is another name for an existing object. They are not pointers! There are no null references all references require initialisation ref1.cpp:8:7: error: declaration of reference variable 'x' requires an initializer int &x; ^ 1 error generated.
32 & and C++ In C++ the & is an explicit reference This means that the object passed using the & prefix is effectively a pointer but we are not using the * prefix as used in C In C++ *_a indicates that the value is a pointer and we may modify it in a function In C++ &_a is a reference (means we don t copy the value) but still behaves like a pointer const &_a means that it is a constant reference to a value. This means it is copied like a pointer but is read only.
33 References are Aliases not Pointers A reference is an alias for an object that already exists prior to the initialisation of the reference Once a reference is initialised to refer to a particular object, it cannot later be made to refer to a different object; a reference is bound to the initialiser. But why bother?
34 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 a function to swap two values 5 /// will make i<=>j 6 *io_i the first value 7 *io_j the 2nd value 8 9 void swapnum( 10 int *io_i, 11 int *io_j 12 ) 13 { 14 int temp = *io_i; 15 *io_i = *io_j; 16 *io_j = temp; 17 } int main() 20 { 21 int a = 10; 22 int b = 20; 23 printf("a is %d and B is %d\n", a, b); swapnum(&a, &b); 26 printf("a is %d and B is %d\n", a, b); 27 return EXIT_SUCCESS; 28 } C example Pass Pointers to values Swap memory addresses notice we pass the memory address via & here 1 A is 10 and B is 20 2 A is 20 and B is 10
35 1 #include <iostream> 2 #include <cstdlib> 3 4 a function to swap two values 5 /// will make i<=>j 6 &io_i the first value 7 &io_j the 2nd value 8 9 void swapnum( 10 int &io_i, 11 int &io_j 12 ) 13 { 14 int temp = io_i; 15 io_i = io_j; 16 io_j = temp; 17 } int main() 20 { 21 int a = 10; 22 int b = 20; 23 std::cout<< "A is "<<a<<" and B is "<< b<<std::endl; swapnum(a, b); 26 std::cout<< "A is "<<a<<" and B is "<< b<<std::endl; return EXIT_SUCCESS; 29 } C++ example Pass parameters by reference notice now we don t have the confusing * s everywhere we now just pass the variables 1 A is 10 and B is 20 2 A is 20 and B is 10
36 Did you spot the error?
37 The Orthodox Canonical class form ( rule of 3) As a general rule (and rules are made to be broken) all classes should define four important functions A default constructor :- This is used internally to initialise objects and data members when no other value is avaliable A copy constructor :- This is used, among other places, in the implementation of call-by-value parameters An assignment operator. This is used to assign one value to another. A destructor. This is invoked when an object is deleted. (more of this soon)
38 Rule of 5 C++ 11 gives some new methods of object creation an ownership and gives us a new rule destructor copy constructor move constructor copy assignment operator move assignment operator More next year.
39 Next Time We will look at how we can actually control objects This will involve managing the lifetimes of multiple objects and getting objects to manage their internal states. We will also see how we can pass messages to objects and get them to respond.
40 References Budd, T 2002 An introduction to Object Oriented programming 3rd Edition. Addison Wesley Parsons, David. Object Oriented Programming with C++ Thomson Learning; 2nd edition 8 Nov 2000 Priess B. Data Structures and Algorithms with Object-Oriented Design Patterns in C++ Wiley 1998 Eckel B. Thinking in C++, 2nd ed. Volume 1 Prentice Hall 2000 Dewhurst S. C++ Common Knowledge Pearson Education 2011
41 Further Reading RationalEdge/sep04/bell/
CE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
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 informationChapter 11 Object and Object- Relational Databases
Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational
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 informationLearning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli
Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationG52CPP C++ Programming Lecture 9
G52CPP C++ Programming Lecture 9 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture const Constants, including pointers The C pre-processor And macros Compiling and linking And
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationIntroduction to Classes
Introduction to Classes Procedural and Object-Oriented Programming Procedural and Object-Oriented Programming Procedural programming focuses on the process/actions that occur in a program Object-Oriented
More informationAn Introduction to C++
An Introduction to C++ Introduction to C++ C++ classes C++ class details To create a complex type in C In the.h file Define structs to store data Declare function prototypes The.h file serves as the interface
More informationObject Oriented Programming. Assistant Lecture Omar Al Khayat 2 nd Year
Object Oriented Programming Assistant Lecture Omar Al Khayat 2 nd Year Syllabus Overview of C++ Program Principles of object oriented programming including classes Introduction to Object-Oriented Paradigm:Structures
More informationIntroduction to C++ Systems Programming
Introduction to C++ Systems Programming Introduction to C++ Syntax differences between C and C++ A Simple C++ Example C++ Input/Output C++ Libraries C++ Header Files Another Simple C++ Example Inline Functions
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 informationAnd Even More and More C++ Fundamentals of Computer Science
And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members
More 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 17: Linked Lists
Chapter 17: Linked Lists Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Pearson Addison-Wesley Education, Inc. Publishing as Pearson Addison-Wesley 17.1 Introduction to the
More informationPreface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS
Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...
More informationClasses. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT).
UNITII Classes Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT). It s a User Defined Data-type. The Data declared in a Class are called Data- Members
More informationCpt S 122 Data Structures. Introduction to C++ Part II
Cpt S 122 Data Structures Introduction to C++ Part II Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Topics Objectives Defining class with a member function
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 informationAP Computer Science Chapter 10 Implementing and Using Classes Study Guide
AP Computer Science Chapter 10 Implementing and Using Classes Study Guide 1. A class that uses a given class X is called a client of X. 2. Private features of a class can be directly accessed only within
More informationFrom Java to C++ From Java to C++ CSE250 Lecture Notes Weeks 1 2, part of 3. Kenneth W. Regan University at Buffalo (SUNY) September 10, 2009
From Java to C++ CSE250 Lecture Notes Weeks 1 2, part of 3 Kenneth W. Regan University at Buffalo (SUNY) September 10, 2009 C++ Values, References, and Pointers 1 C++ Values, References, and Pointers 2
More informationPartha Sarathi Mandal
MA 253: Data Structures Lab with OOP Tutorial 1 http://www.iitg.ernet.in/psm/indexing_ma253/y13/index.html Partha Sarathi Mandal psm@iitg.ernet.in Dept. of Mathematics, IIT Guwahati Reference Books Cormen,
More informationIntroduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts
Introduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationIntro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.
Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype
More informationOBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe
OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++
More informationG52CPP C++ Programming Lecture 7. Dr Jason Atkin
G52CPP C++ Programming Lecture 7 Dr Jason Atkin 1 This lecture classes (and C++ structs) Member functions inline functions 2 Last lecture: predict the sizes 3 #pragma pack(1) #include struct A
More informationInheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017
OOP components For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Data Abstraction Information Hiding, ADTs Encapsulation Type Extensibility Operator Overloading
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual
More informationInstantiation of Template class
Class Templates Templates are like advanced macros. They are useful for building new classes that depend on already existing user defined classes or built-in types. Example: stack of int or stack of double
More informationSeptember 10,
September 10, 2013 1 Bjarne Stroustrup, AT&T Bell Labs, early 80s cfront original C++ to C translator Difficult to debug Potentially inefficient Many native compilers exist today C++ is mostly upward compatible
More informationAbstract Data Types and Encapsulation Concepts
Abstract Data Types and Encapsulation Concepts The Concept of Abstraction An abstraction is a view or representation of an entity that includes only the most significant attributes The concept of abstraction
More information4.1 Introduction Programming preliminaries Constructors Destructors An example... 3
Department of Computer Science Tackling Design Patterns Chapter 4: Factory Method design pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 4.1 Introduction.................................
More informationTuesday, 22 September 2009
Scope in C++ Lecture 6 Object Lifetimes In C++ scope is delimited by the { } Any variables declared within these sections are only valid within the braces This is also true for the following int main()
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 informationChapter 13: Introduction to Classes Procedural and Object-Oriented Programming
Chapter 13: Introduction to Classes 1 13.1 Procedural and Object-Oriented Programming 2 Procedural and Object-Oriented Programming Procedural programming focuses on the process/actions that occur in a
More informationObject-Oriented Principles and Practice / C++
Object-Oriented Principles and Practice / C++ Alice E. Fischer June 3, 2013 OOPP / C++ Lecture 9... 1/40 Const Qualifiers Operator Extensions Polymorphism Abstract Classes Linear Data Structure Demo Ordered
More informationOOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.
OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.
More informationObject Oriented Design
Object Oriented Design Chapter 9 Initializing a non-static data member in the class definition is a syntax error 1 9.2 Time Class Case Study In Fig. 9.1, the class definition is enclosed in the following
More informationC++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 12: Classes and Data Abstraction
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 12: Classes and Data Abstraction Objectives In this chapter, you will: Learn about classes Learn about private, protected,
More informationInterview Questions of C++
Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.
More information3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.
3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.
More informationComputer Science 306 Study Guide
Computer Science 306 Study Guide C++ for Programmers Computer Science 306 Study Guide (Print Version) Copyright and Credits - Unit 0 - Introduction to C++ for Programmers Section 1 - The programming environment
More informationADTs & Classes. An introduction
ADTs & Classes An introduction Quick review of OOP Object: combination of: data structures (describe object attributes) functions (describe object behaviors) Class: C++ mechanism used to represent an object
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationExtending 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 informationEL2310 Scientific Programming
Lecture 14: Object Oriented Programming in C++ (fpokorny@kth.se) Overview Overview Lecture 14: Object Oriented Programming in C++ Wrap Up Introduction to Object Oriented Paradigm Classes More on Classes
More informationChapter 10 Introduction to Classes
C++ for Engineers and Scientists Third Edition Chapter 10 Introduction to Classes CSc 10200! Introduction to Computing Lecture 20-21 Edgardo Molina Fall 2013 City College of New York 2 Objectives In this
More information(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University
(12-1) OOP: Polymorphism in C++ D & D Chapter 12 Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University Key Concepts Polymorphism virtual functions Virtual function tables
More informationAbstraction in Software Development
Abstract Data Types Programmer-created data types that specify values that can be stored (type of data) operations that can be done on the values The user of an abstract data type (ADT) does not need to
More informationClasses and Objects. Class scope: - private members are only accessible by the class methods.
Class Declaration Classes and Objects class class-tag //data members & function members ; Information hiding in C++: Private Used to hide class member data and methods (implementation details). Public
More informationMore C++ : Vectors, Classes, Inheritance, Templates. with content from cplusplus.com, codeguru.com
More C++ : Vectors, Classes, Inheritance, Templates with content from cplusplus.com, codeguru.com 2 Vectors vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes
More 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 informationBCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus
BCS Higher Education Qualifications Diploma in IT Object Oriented Programming Syllabus Version 3.0 December 2016 This is a United Kingdom government regulated qualification which is administered and approved
More informationLecture 18 Tao Wang 1
Lecture 18 Tao Wang 1 Abstract Data Types in C++ (Classes) A procedural program consists of one or more algorithms that have been written in computerreadable language Input and display of program output
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 informationData Structures using OOP C++ Lecture 3
References: th 1. E Balagurusamy, Object Oriented Programming with C++, 4 edition, McGraw-Hill 2008. 2. Robert L. Kruse and Alexander J. Ryba, Data Structures and Program Design in C++, Prentice-Hall 2000.
More informationChapter 11. Abstract Data Types and Encapsulation Concepts
Chapter 11 Abstract Data Types and Encapsulation Concepts The Concept of Abstraction An abstraction is a view or representation of an entity that includes only the most significant attributes The concept
More 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 informationObject Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationSpecial Member Functions
CS 247: Software Engineering Principles Special Member Functions Readings: Eckel, Vol. 1 Ch. 11 References and the Copy Constructor Ch. 12 Operator Overloading ( operator= ) U Waterloo CS247 (Spring 2017)
More informationQUIZ How do we implement run-time constants and. compile-time constants inside classes?
QUIZ How do we implement run-time constants and compile-time constants inside classes? Compile-time constants in classes The static keyword inside a class means there s only one instance, regardless of
More informationCPS 506 Comparative Programming Languages. Programming Language
CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support
More informationExercise. Game Programming in C++ Overview. Art vs. Science in Programming. Organising your code. Organising your code
Exercise Game Programming in C++ Arjan Egges Lecture #5: The art of programming Write a function that calculates the frequency of a given character in a string, e.g. for string arjan and character a, the
More informationLecture 02, Fall 2018 Friday September 7
Anatomy of a class Oliver W. Layton CS231: Data Structures and Algorithms Lecture 02, Fall 2018 Friday September 7 Follow-up Python is also cross-platform. What s the advantage of Java? It s true: Python
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 informationData Structures (list, dictionary, tuples, sets, strings)
Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access
More informationTokens, Expressions and Control Structures
3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type
More informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
More informationObject-Oriented Programming
- oriented - iuliana@cs.ubbcluj.ro Babes-Bolyai University 2018 1 / 56 Overview - oriented 1 2 -oriented 3 4 5 6 7 8 Static and friend elements 9 Summary 2 / 56 I - oriented was initially created by Bjarne
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 informationCS201 Some Important Definitions
CS201 Some Important Definitions For Viva Preparation 1. What is a program? A program is a precise sequence of steps to solve a particular problem. 2. What is a class? We write a C++ program using data
More informationSpecial Member Functions. Compiler-Generated Destructor. Compiler-Generated Default Constructor. Special Member Functions
Special Member Functions CS 247: Software Engineering Principles Special Member Functions Readings: Eckel, Vol. 1 Ch. 11 References and the Copy Constructor Ch. 12 Operator Overloading ( operator= ) C++
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
More information(5-1) Object-Oriented Programming (OOP) and C++ Instructor - Andrew S. O Fallon CptS 122 (February 4, 2019) Washington State University
(5-1) Object-Oriented Programming (OOP) and C++ Instructor - Andrew S. O Fallon CptS 122 (February 4, 2019) Washington State University Key Concepts 2 Object-Oriented Design Object-Oriented Programming
More informationCS250 Final Review Questions
CS250 Final Review Questions The following is a list of review questions that you can use to study for the final. I would first make sure you review all previous exams and make sure you fully understand
More informationMore C++ : Vectors, Classes, Inheritance, Templates
Vectors More C++ : Vectors,, Inheritance, Templates vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes defined differently can be resized without explicit
More informationEncapsulation in C++
pm_jat@daiict.ac.in In abstract sense, it is all about information hiding Informally, you can call it as packaging of data and function together in a single entity called class such that you get implementation
More informationC++ Mini-Course. Part 1: Mechanics Part 2: Basics Part 3: References Part 4: Const Part 5: Inheritance Part 6: Libraries Part 7: Conclusion. C Rulez!
C++ Mini-Course Part 1: Mechanics Part 2: Basics Part 3: References Part 4: Const Part 5: Inheritance Part 6: Libraries Part 7: Conclusion C Rulez! C++ Rulez! C++ Mini-Course Part 1: Mechanics C++ is a
More information(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University
(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University Key Concepts Function templates Defining classes with member functions The Rule
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 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 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 informationSoftware Design and Analysis for Engineers
Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:
More informationIntroduction to C++ Introduction to C++ 1
1 What Is C++? (Mostly) an extension of C to include: Classes Templates Inheritance and Multiple Inheritance Function and Operator Overloading New (and better) Standard Library References and Reference
More informationChapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures
Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of
More informationCOMP6771 Advanced C++ Programming
1.. COMP6771 Advanced C++ Programming Week 6 Part One: Function Templates 2016 www.cse.unsw.edu.au/ cs6771 2.. Constants Two notions of immutability: const: A promise not to change this value. Used primarily
More informationChapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language
Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented
More informationLecture 10: building large projects, beginning C++, C++ and structs
CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 10:
More informationCS304 Object Oriented Programming Final Term
1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing
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 informationDynamic memory in class Ch 9, 11.4, 13.1 & Appendix F
Dynamic memory in class Ch 9, 11.4, 13.1 & Appendix F Announcements Test next week (whole class) Covers: -Arrays -Functions -Recursion -Strings -File I/O Highlights - Destructors - Copy constructors -
More informationChapter 11. Abstract Data Types and Encapsulation Concepts ISBN
Chapter 11 Abstract Data Types and Encapsulation Concepts ISBN 0-321-49362-1 Chapter 11 Topics The Concept of Abstraction Introduction to Data Abstraction Design Issues for Abstract Data Types Language
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationObject-Oriented Design (OOD) and C++
Chapter 2 Object-Oriented Design (OOD) and C++ At a Glance Instructor s Manual Table of Contents Chapter Overview Chapter Objectives Instructor Notes Quick Quizzes Discussion Questions Projects to Assign
More information02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211
02 Features of C#, Part 1 Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Module Overview Constructing Complex Types Object Interfaces and Inheritance Generics Constructing
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More information