SlideShare a Scribd company logo
1 of 32
Fundamentals of
Computer Programming
Chapter 7
User Defined Data types
(union, enum, typedef and class & object)
Chere L. (M.Tech)
Lecturer, SWEG, AASTU
1
Outline
▪ Introduction to User defined Data type
▪ Defining structure (with tag and without tag)
▪ Declaring structure variable
▪ Initializing structure elements
▪ Accessing structure elements
▪ Nested structure
 Defining structure within structure
 Structure variable within other structure definition
▪ Array of structure
▪ Structure pointer
▪ Structure with function
 Structure variable as parameter
 Structure as a return type
Chapter 7 2
Outline
▪ Other User defined Data types
 Anonymous unions (union)
 Enumerated types (enum)
 Type definition (typedef)
▪ Class and Object as user defined data type
 Class and Object Basics
 Class and Object Creation
Chapter 7 3
7.1) Union
Chapter 7 4
 A union is also a user defined data type that declares a
set of multiple variable sharing the same memory area
 Unions are similar to structures in certain aspects.
 It used to group together variables of different data
types.
 It declared and used in the same way as structures.
 The individual members can be accessed using dot
operator.
 Syntax:
union union_tag{
type1 member_namel;
type2 member_name2;
… …
typeN member_nameN;
};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.1) Union (cont’d)
Chapter 7 5
Difference between structure and Union in terms of storage.
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.1) Union (cont’d)
Chapter 7 6
#include <iostream>
using namespace std;
// defining a struct
struct student1 {
int roll_no;
char name[40];
};
// defining a union
union student2 {
int roll_no;
char name[40];
};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
int main()
{
struct student1 s1;
union student2 u1;
cout << "size of structure : “;
cout << sizeof(s1) << endl;
cout << "size of union : “;
cout<< sizeof(u1) << endl;
return 0;
}
Example of comparing size of union and structure
7.1) Union (cont’d)
Chapter 7 7
Summary of structure & union Distinction
When/Where it can be used?
 Allow data members which are mutually exclusive to share
the same memory. important when memory is more scarce.
 Useful in Embedded programming or in situations where
direct access to the hardware/memory is needed.
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
No Structure Union
1
Every member has its
own memory
All members use the same
memory
2 Keyword strcut is used Keyword union is used
3
All members can be
initialized
Only its first members can
be initialized
4 Consume more space Memory conversion
7.1) Union (cont’d)
Chapter 7 8
#include <iostream>
using namespace std;
union Employee{
int Id, Age;
char Name[25];
long Salary;
};
int main(){
Employee E;
cout << "nEnter Employee Id : "; cin >> E.Id;
cout << "Employee Id : " << E.Id;
cout << "nnEnter Employee Name : "; cin >> E.Name;
cout << "Employee Name : " << E.Name;
cout << "nnEnter Employee Age : "; cin >> E.Age;
cout << "Employee Age : " << E.Age;
cout << "nnEnter Employee Salary : "; cin >> E.Salary;
cout << "Employee Salary : " << E.Salary;
}
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
Example: creating object & accessing union members
7.2) Enumeration
Chapter 7 9
 Enumerations are used to create new data types of
multiple integer constants.
 An enumeration consists of a list of values.
 enum types can be used to set up collections of named
integer constants.
 Each value has a unique number i.e. Integer CONSTANT
starting from 0.
 Cannot take any other data type than integer
 enum declaration is only a blueprint for the variable is
created and does not contain any fundamental data type
 Syntax
enum identifier { variable1, variable2, . . .};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.2) Enumeration (cont’d)
Chapter 7 10
 Example 1:
enum days_of_week {Monday, Tuesday,
Wednesday, Thursday, Friday,
Saturday, Sunday};
 Enumerations
 Each value in an enumeration is always assigned an
integer value.
 By default, the value starts from 0 and so on. E.g. On
the above enum declaration
VALUES: Monday = 0, Tuesday = 1 ,… , Sunday = 6
 However, the values can be assigned in different
way also
 Example:
enum colors{ white, Green, Blue, Red=7, Black, Pink};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.2) Enumeration (cont’d)
Chapter 7 11
 Example 1: Enumeration Type
#include <iostream>
using namespace std;
enum week {
Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday, Sunday
};
int main() {
week today;
today = Wednesday;
cout << "Day " << today+1;
cout<<"nSize: "<<sizeof(week);
return 0;
}
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.2) Enumeration (cont’d)
Chapter 7 12
 Example 2: enum declaration and changing default value
#include <iostream>
using namespace std;
enum colors { green=1, red, blue, black=0, white,
brown=11, pink, yellow, aqua, gray
}flag_color; //definition at the time declaration
int main() {
colors painting;
painting = brown;
flag_color = green;
cout<<"Painting Colors: "<<endl;
for(int i=painting; i<= 15; ++i ) {
cout<<painting+i<<" "; }
return 0;
}
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.2) Enumeration (cont’d)
Chapter 7 13
Application
Enables programmers to define variables and restrict its
value to a set of possible values which are integer (4 bytes)
and also makes to take only one value out of many possible
values
 When it expected that the variable to have one of the
possible set of values.
 E.g., assume a variable that holds the direction.
Since we have four directions, this variable can take
any one of the four values
 switch case statements, where all the values that case
blocks expect can be defined in an enum.
 A good choice to work with flags
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
enum styleFlags { ITALICS = 1, BOLD,
REGULAR, UNDERLINE} button;
7.3) typedef
Chapter 7 14
 The keyword typedef provides a mechanism for
creating synonyms (or aliases) for previously
defined data types.
 In simple words, a typedef is a way of renaming a
type
 Syntax:
typesdef existing_type_name new_typeName;
 Once the typedef synonym (new_typeName) is
defined, you can declare your variables using the
synonym as a new type.
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.3) typedef (cont’d)
Chapter 7 15
 Example:
typedef unsigned short int USHI; USHI age;
typedef struct Student Tstud; Tstud class[50[];
 In this example, both USHI and Tstud are a synonym
Note:
 Typedef does not really create a new type
 It is good practice to
 Capitalize the first letter of typedef synonym.
 Preface it with a capital “T” to indicate it’s one
of your new types e.g. TRobot, TStudent, etc.
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
7.3) typedef (cont’d)
Chapter 7 16
Example: complete program
#include<iostream.h>
usning namespace std;
struct student_records{
char sId[10];
char sName[20];
float mark;
};
typedef unsingned short int ME;
typedef student_records studRec;
int main(){
ME a=1, b;
cout<<“Enter a number: “;
cin>>b;
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
cout<<"the Numbers are n“
cout<<a<<"n"<<b;
cout<<"n"<<sizeof(ME);
studRec S1 = {“ETS215/12”,
“John”, 80};
cout<<“Student Info:n”;
cout<<“ID: “<<S1.sId;
cout<<“Name: ”<<S1.sName;
cout<<“Mark: “<<S1.mark;
return 0;
}
7.3) typedef (cont’d)
Chapter 7 17
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
Application
(8) Class and Object
Chapter 7 18
 Classes and Objects are basic concepts of OOP which
revolve around the real life entities
Class
 A user defined blueprint (prototype) from which
objects are created.
 It represents the set of properties or methods that
are common to all objects of one type.
Object
 Represents the real life entities.
 An object consists of:
 state – represented by attributes (data member) of
an object
 behavior - represented by methods (functions) of
an object
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
(8) Class and Object (cont’d)
Chapter 7 19
 Class model objects that have attributes (data members)
and behaviors (member functions)
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
(8) Class and Object (cont’d)
Chapter 7 20
Class and Object creation
 Class is defined using keyword class
 Have a body delineated with braces ({ and };)
 Member visibility is determined by access modifier:
 private
 protected
 public
Syntax
class className {
// some data
// some functions
};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
(8) Class and Object (cont’d)
Chapter 7 21
Example
class Room {
public:
double length;
double breadth;
double height;
double calculateArea(){
return length * breadth;
}
double calculateVolume(){
return length * breadth * height;
}
};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
(8) Class and Object (cont’d)
Chapter 7 22
Example (cont. . . )
int main() {
Room room1; // create object of Room class
// assign values to data members
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;
// calculate and display the area and volume of the room
cout << "Area of Room = " << room1.calculateArea() <<
endl;
cout<< "Volume of Room = "<<room1.calculateVolume();
return 0;
}
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
(8) Class and Object (cont’d)
Chapter 7 23
Some of the differences between class Vs. structure
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
Structure Class
A grouping of variables of
various data types referenced
by the same name.
A collection of related variables
and functions contained within
a single structure.
By default, all the members
of the structure are public
unless access specifier is
specified
By default, all the members of
the structure are private unless
access specifier is specified
It’s instance is called the
'structure variable'.
A class instance is called
'object'.
It does not support
inheritance.
It supports inheritance.
Memory is allocated on the
stack.
Memory is allocated on the
heap.
(8) Class and Object (cont’d)
Chapter 7 24
Some of the differences between class Vs. structure
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
Structure Class
Value Type Reference Type
Purpose - grouping of data Purpose - data abstraction
and further inheritance.
It is used for smaller amounts of
data.
It is used for a huge amount
of data.
NULL value is Not possible It may have null values.
It may have only parameterized
constructor.
It may have all the types of
constructors and destructors.
automatically initialize its
members.
constructors are used to
initialize the class members.
(8) Class and Object (cont’d)
Chapter 7 25
Example program - Class Vs. struct
// classes example
#include <iostream>
using namespace std;
class Rectangle1 {
//private by default
int width, height;
public:
~Rectangle1 (int x, int y){
this.width =x ;
this.height = y;
}
int area() {
return width*height;
}
};
CONTENTS
User Defined DT
Structure Basics
Nested Structures
Array of Structures
Struct manipulation
Structure Pointer
Structure & Function
Union, enum & typdef
Class and Objects
struct Rectangle2 {
//public by default
int width, height;
int area() {
return width*height;
} };
int main () {
Rectangle1 rect1 = Reactangle1
(3,4); //constructor
cout << "area 1: " << rect.area();
Rectangle2 rect2 = {6, 5};
cout << "area 2: " << rect2.area();
return 0;
}
Practical Exercise
1. Create a class named 'Student' with a string variable 'name' and an
integer variable 'roll_no'. Assign the value of roll_no as '2' and that of
name as "John" by creating an object of the class Student.
2. Write a program to print the area and perimeter of a triangle having
sides of 3, 4 and 5 units by creating a class named 'Triangle' with the
constructor having the three sides as its parameters.
3. Write a program to print the area of a rectangle by creating a class
named 'Area' having two functions. First function named as 'setDim'
takes the length and breadth of the rectangle as parameters and the
second function named as 'getArea' returns the area of the rectangle.
Length and breadth of the rectangle are entered through keyboard.
4. Print the sum, difference and product of two complex numbers by
creating a class named 'Complex' with separate functions for each
operation whose real and imaginary parts are entered by the user.
Chapter 7 26
Practical Exercise
5. Show how to declare Real as a synonym for float (float and Real can be
used interchangeably).
6. Show how to declare the following constants using an enum statement:
WINTER =1, SPRING = 2, SUMMER = 3 and FALL = 4.
7. Provide an example that demonstrate the use of enum in defining flags.
8. Which user defined data type is appropriate to design self driving car
gear? Justify your answer by providing demonstration example.
9. Assume there are a medical data set stored on cloud (server computer).
A client computer access and process each data groups independently.
Which user defined data type is appropriate to write the client side
program? Justify your answer with demonstration.
Chapter 7 27
MCQ
1. What does your class can hold?
A. data B. functions C. both a & b D. none
2. The union data type differ from structure both in storage allocation and
member initialization.
A. True B. False
3. Unlike that of union by default the members of class is public.
A. True B. False
4. Members of one of the following user defined data type is not
associated with fundamental data types.
A. enumeration B. class
C. structure D. union E) B&C
5. A user defined data types that is useful for embedded programming
A. union B. typedef C. class D. enum.
Chapter 7 28
MCQ
6. An appropriate user defined data types to work with FLAGS;
A. strcut B. union C. class D. enum.
7. An appropriate user defined data types to work with FLAGS;
A. strcut B. union C. class D. enum.
8. Which of the following is odd in their declaration style?
A. strcut B. union
C. typedef D. class E. enum
9. There is no programming philosophy between structure and class.
A. True B. False
10. Which of the following is not used to create a new Data Type?
A. strcut B. union C. typedef E. enum
11. Is it mandatory that the size of all elements in a union should be same?
A. True B. False
Chapter 7 29
Short Answer
1. Compare and contrast structure data type with the following:
a) Class
b) Union
c) Array
2. Explain the importance of enumeration and union types.
3. What is the size of the following user defined data types
a) Structure c) Union
b) Class d) enum
4. Does structure replace class completely? Justify your answer with
examples.
Chapter 7 30
Reading Resources/Materials
Chapter 10 & 11:
✔ Herbert Schildt; C++ from the Ground Up (3rd Edition), 2003
McGraw-Hill, California 94710 U.S.A.
Chapter 8:
✔ Bjarne Stroustrup;The C++ Programming Language [4th
Edition], Pearson Education, Inc , 2013
Chapter 15:
✔ Diane Zak; An Introduction to Programming with C++ (8th
Edition), 2016 Cengage Learning
Chapter 10:
✔ Walter Savitch; Problem Solving With C++ [10th edition,
University of California, San Diego, 2018
31
Chapter 7
Thank You
For Your Attention!!
32
Chapter 7

More Related Content

Similar to User Defined Datatypes in C++ (Union, enum, class)

Similar to User Defined Datatypes in C++ (Union, enum, class) (20)

Structures in c++
Structures in c++Structures in c++
Structures in c++
 
Structures
StructuresStructures
Structures
 
C Programming - Refresher - Part IV
C Programming - Refresher - Part IVC Programming - Refresher - Part IV
C Programming - Refresher - Part IV
 
Structures in c++
Structures in c++Structures in c++
Structures in c++
 
User defined data types.pptx
User defined data types.pptxUser defined data types.pptx
User defined data types.pptx
 
Bt0065
Bt0065Bt0065
Bt0065
 
B T0065
B T0065B T0065
B T0065
 
Easy Understanding of Structure Union Typedef Enum in C Language.pdf
Easy Understanding of Structure Union Typedef Enum in C Language.pdfEasy Understanding of Structure Union Typedef Enum in C Language.pdf
Easy Understanding of Structure Union Typedef Enum in C Language.pdf
 
Typescript: Beginner to Advanced
Typescript: Beginner to AdvancedTypescript: Beginner to Advanced
Typescript: Beginner to Advanced
 
DS_PPT.pptx
DS_PPT.pptxDS_PPT.pptx
DS_PPT.pptx
 
Abstract Data Types (a) Explain briefly what is meant by the ter.pdf
Abstract Data Types (a) Explain briefly what is meant by the ter.pdfAbstract Data Types (a) Explain briefly what is meant by the ter.pdf
Abstract Data Types (a) Explain briefly what is meant by the ter.pdf
 
C1320prespost
C1320prespostC1320prespost
C1320prespost
 
Op ps
Op psOp ps
Op ps
 
structenumtypedefunion.pptx
structenumtypedefunion.pptxstructenumtypedefunion.pptx
structenumtypedefunion.pptx
 
UNIONS.pptx
UNIONS.pptxUNIONS.pptx
UNIONS.pptx
 
Structure and Typedef
Structure and TypedefStructure and Typedef
Structure and Typedef
 
Data types in C
Data types in CData types in C
Data types in C
 
Chapter2pp
Chapter2ppChapter2pp
Chapter2pp
 
C language by Dr. Gholkar D. R.
C language by Dr. Gholkar D. R.C language by Dr. Gholkar D. R.
C language by Dr. Gholkar D. R.
 
Ch-3(b) - Variables and Data types in C++.pptx
Ch-3(b) - Variables and Data types in C++.pptxCh-3(b) - Variables and Data types in C++.pptx
Ch-3(b) - Variables and Data types in C++.pptx
 

More from ChereLemma2

Ch5 Project Scope Management xxxxxxxxx.pptx
Ch5 Project Scope Management xxxxxxxxx.pptxCh5 Project Scope Management xxxxxxxxx.pptx
Ch5 Project Scope Management xxxxxxxxx.pptxChereLemma2
 
Lecture - Project Scope Management slide
Lecture - Project Scope Management slideLecture - Project Scope Management slide
Lecture - Project Scope Management slideChereLemma2
 
Chapter 6 - Modular Programming- in C++.pptx
Chapter 6 - Modular Programming- in C++.pptxChapter 6 - Modular Programming- in C++.pptx
Chapter 6 - Modular Programming- in C++.pptxChereLemma2
 
Fundamentals of Computer Programming - Flow of Control I
Fundamentals of Computer Programming - Flow of Control IFundamentals of Computer Programming - Flow of Control I
Fundamentals of Computer Programming - Flow of Control IChereLemma2
 
File Management and manipulation in C++ Programming
File Management and manipulation in C++ ProgrammingFile Management and manipulation in C++ Programming
File Management and manipulation in C++ ProgrammingChereLemma2
 
Basic Concepts of Programming - Practical Exercises
Basic Concepts of Programming - Practical ExercisesBasic Concepts of Programming - Practical Exercises
Basic Concepts of Programming - Practical ExercisesChereLemma2
 
Fundamentals of Computer Programming Summary of Flow Controls
Fundamentals of Computer Programming  Summary of Flow ControlsFundamentals of Computer Programming  Summary of Flow Controls
Fundamentals of Computer Programming Summary of Flow ControlsChereLemma2
 
Fundamentals of Computer Programming in C++ Key Concepts
Fundamentals of Computer Programming in C++ Key ConceptsFundamentals of Computer Programming in C++ Key Concepts
Fundamentals of Computer Programming in C++ Key ConceptsChereLemma2
 

More from ChereLemma2 (8)

Ch5 Project Scope Management xxxxxxxxx.pptx
Ch5 Project Scope Management xxxxxxxxx.pptxCh5 Project Scope Management xxxxxxxxx.pptx
Ch5 Project Scope Management xxxxxxxxx.pptx
 
Lecture - Project Scope Management slide
Lecture - Project Scope Management slideLecture - Project Scope Management slide
Lecture - Project Scope Management slide
 
Chapter 6 - Modular Programming- in C++.pptx
Chapter 6 - Modular Programming- in C++.pptxChapter 6 - Modular Programming- in C++.pptx
Chapter 6 - Modular Programming- in C++.pptx
 
Fundamentals of Computer Programming - Flow of Control I
Fundamentals of Computer Programming - Flow of Control IFundamentals of Computer Programming - Flow of Control I
Fundamentals of Computer Programming - Flow of Control I
 
File Management and manipulation in C++ Programming
File Management and manipulation in C++ ProgrammingFile Management and manipulation in C++ Programming
File Management and manipulation in C++ Programming
 
Basic Concepts of Programming - Practical Exercises
Basic Concepts of Programming - Practical ExercisesBasic Concepts of Programming - Practical Exercises
Basic Concepts of Programming - Practical Exercises
 
Fundamentals of Computer Programming Summary of Flow Controls
Fundamentals of Computer Programming  Summary of Flow ControlsFundamentals of Computer Programming  Summary of Flow Controls
Fundamentals of Computer Programming Summary of Flow Controls
 
Fundamentals of Computer Programming in C++ Key Concepts
Fundamentals of Computer Programming in C++ Key ConceptsFundamentals of Computer Programming in C++ Key Concepts
Fundamentals of Computer Programming in C++ Key Concepts
 

Recently uploaded

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17Celine George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 

User Defined Datatypes in C++ (Union, enum, class)

  • 1. Fundamentals of Computer Programming Chapter 7 User Defined Data types (union, enum, typedef and class & object) Chere L. (M.Tech) Lecturer, SWEG, AASTU 1
  • 2. Outline ▪ Introduction to User defined Data type ▪ Defining structure (with tag and without tag) ▪ Declaring structure variable ▪ Initializing structure elements ▪ Accessing structure elements ▪ Nested structure  Defining structure within structure  Structure variable within other structure definition ▪ Array of structure ▪ Structure pointer ▪ Structure with function  Structure variable as parameter  Structure as a return type Chapter 7 2
  • 3. Outline ▪ Other User defined Data types  Anonymous unions (union)  Enumerated types (enum)  Type definition (typedef) ▪ Class and Object as user defined data type  Class and Object Basics  Class and Object Creation Chapter 7 3
  • 4. 7.1) Union Chapter 7 4  A union is also a user defined data type that declares a set of multiple variable sharing the same memory area  Unions are similar to structures in certain aspects.  It used to group together variables of different data types.  It declared and used in the same way as structures.  The individual members can be accessed using dot operator.  Syntax: union union_tag{ type1 member_namel; type2 member_name2; … … typeN member_nameN; }; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 5. 7.1) Union (cont’d) Chapter 7 5 Difference between structure and Union in terms of storage. CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 6. 7.1) Union (cont’d) Chapter 7 6 #include <iostream> using namespace std; // defining a struct struct student1 { int roll_no; char name[40]; }; // defining a union union student2 { int roll_no; char name[40]; }; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects int main() { struct student1 s1; union student2 u1; cout << "size of structure : “; cout << sizeof(s1) << endl; cout << "size of union : “; cout<< sizeof(u1) << endl; return 0; } Example of comparing size of union and structure
  • 7. 7.1) Union (cont’d) Chapter 7 7 Summary of structure & union Distinction When/Where it can be used?  Allow data members which are mutually exclusive to share the same memory. important when memory is more scarce.  Useful in Embedded programming or in situations where direct access to the hardware/memory is needed. CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects No Structure Union 1 Every member has its own memory All members use the same memory 2 Keyword strcut is used Keyword union is used 3 All members can be initialized Only its first members can be initialized 4 Consume more space Memory conversion
  • 8. 7.1) Union (cont’d) Chapter 7 8 #include <iostream> using namespace std; union Employee{ int Id, Age; char Name[25]; long Salary; }; int main(){ Employee E; cout << "nEnter Employee Id : "; cin >> E.Id; cout << "Employee Id : " << E.Id; cout << "nnEnter Employee Name : "; cin >> E.Name; cout << "Employee Name : " << E.Name; cout << "nnEnter Employee Age : "; cin >> E.Age; cout << "Employee Age : " << E.Age; cout << "nnEnter Employee Salary : "; cin >> E.Salary; cout << "Employee Salary : " << E.Salary; } CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects Example: creating object & accessing union members
  • 9. 7.2) Enumeration Chapter 7 9  Enumerations are used to create new data types of multiple integer constants.  An enumeration consists of a list of values.  enum types can be used to set up collections of named integer constants.  Each value has a unique number i.e. Integer CONSTANT starting from 0.  Cannot take any other data type than integer  enum declaration is only a blueprint for the variable is created and does not contain any fundamental data type  Syntax enum identifier { variable1, variable2, . . .}; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 10. 7.2) Enumeration (cont’d) Chapter 7 10  Example 1: enum days_of_week {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};  Enumerations  Each value in an enumeration is always assigned an integer value.  By default, the value starts from 0 and so on. E.g. On the above enum declaration VALUES: Monday = 0, Tuesday = 1 ,… , Sunday = 6  However, the values can be assigned in different way also  Example: enum colors{ white, Green, Blue, Red=7, Black, Pink}; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 11. 7.2) Enumeration (cont’d) Chapter 7 11  Example 1: Enumeration Type #include <iostream> using namespace std; enum week { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { week today; today = Wednesday; cout << "Day " << today+1; cout<<"nSize: "<<sizeof(week); return 0; } CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 12. 7.2) Enumeration (cont’d) Chapter 7 12  Example 2: enum declaration and changing default value #include <iostream> using namespace std; enum colors { green=1, red, blue, black=0, white, brown=11, pink, yellow, aqua, gray }flag_color; //definition at the time declaration int main() { colors painting; painting = brown; flag_color = green; cout<<"Painting Colors: "<<endl; for(int i=painting; i<= 15; ++i ) { cout<<painting+i<<" "; } return 0; } CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 13. 7.2) Enumeration (cont’d) Chapter 7 13 Application Enables programmers to define variables and restrict its value to a set of possible values which are integer (4 bytes) and also makes to take only one value out of many possible values  When it expected that the variable to have one of the possible set of values.  E.g., assume a variable that holds the direction. Since we have four directions, this variable can take any one of the four values  switch case statements, where all the values that case blocks expect can be defined in an enum.  A good choice to work with flags CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects enum styleFlags { ITALICS = 1, BOLD, REGULAR, UNDERLINE} button;
  • 14. 7.3) typedef Chapter 7 14  The keyword typedef provides a mechanism for creating synonyms (or aliases) for previously defined data types.  In simple words, a typedef is a way of renaming a type  Syntax: typesdef existing_type_name new_typeName;  Once the typedef synonym (new_typeName) is defined, you can declare your variables using the synonym as a new type. CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 15. 7.3) typedef (cont’d) Chapter 7 15  Example: typedef unsigned short int USHI; USHI age; typedef struct Student Tstud; Tstud class[50[];  In this example, both USHI and Tstud are a synonym Note:  Typedef does not really create a new type  It is good practice to  Capitalize the first letter of typedef synonym.  Preface it with a capital “T” to indicate it’s one of your new types e.g. TRobot, TStudent, etc. CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 16. 7.3) typedef (cont’d) Chapter 7 16 Example: complete program #include<iostream.h> usning namespace std; struct student_records{ char sId[10]; char sName[20]; float mark; }; typedef unsingned short int ME; typedef student_records studRec; int main(){ ME a=1, b; cout<<“Enter a number: “; cin>>b; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects cout<<"the Numbers are n“ cout<<a<<"n"<<b; cout<<"n"<<sizeof(ME); studRec S1 = {“ETS215/12”, “John”, 80}; cout<<“Student Info:n”; cout<<“ID: “<<S1.sId; cout<<“Name: ”<<S1.sName; cout<<“Mark: “<<S1.mark; return 0; }
  • 17. 7.3) typedef (cont’d) Chapter 7 17 CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects Application
  • 18. (8) Class and Object Chapter 7 18  Classes and Objects are basic concepts of OOP which revolve around the real life entities Class  A user defined blueprint (prototype) from which objects are created.  It represents the set of properties or methods that are common to all objects of one type. Object  Represents the real life entities.  An object consists of:  state – represented by attributes (data member) of an object  behavior - represented by methods (functions) of an object CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 19. (8) Class and Object (cont’d) Chapter 7 19  Class model objects that have attributes (data members) and behaviors (member functions) CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 20. (8) Class and Object (cont’d) Chapter 7 20 Class and Object creation  Class is defined using keyword class  Have a body delineated with braces ({ and };)  Member visibility is determined by access modifier:  private  protected  public Syntax class className { // some data // some functions }; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 21. (8) Class and Object (cont’d) Chapter 7 21 Example class Room { public: double length; double breadth; double height; double calculateArea(){ return length * breadth; } double calculateVolume(){ return length * breadth * height; } }; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 22. (8) Class and Object (cont’d) Chapter 7 22 Example (cont. . . ) int main() { Room room1; // create object of Room class // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout<< "Volume of Room = "<<room1.calculateVolume(); return 0; } CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects
  • 23. (8) Class and Object (cont’d) Chapter 7 23 Some of the differences between class Vs. structure CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects Structure Class A grouping of variables of various data types referenced by the same name. A collection of related variables and functions contained within a single structure. By default, all the members of the structure are public unless access specifier is specified By default, all the members of the structure are private unless access specifier is specified It’s instance is called the 'structure variable'. A class instance is called 'object'. It does not support inheritance. It supports inheritance. Memory is allocated on the stack. Memory is allocated on the heap.
  • 24. (8) Class and Object (cont’d) Chapter 7 24 Some of the differences between class Vs. structure CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects Structure Class Value Type Reference Type Purpose - grouping of data Purpose - data abstraction and further inheritance. It is used for smaller amounts of data. It is used for a huge amount of data. NULL value is Not possible It may have null values. It may have only parameterized constructor. It may have all the types of constructors and destructors. automatically initialize its members. constructors are used to initialize the class members.
  • 25. (8) Class and Object (cont’d) Chapter 7 25 Example program - Class Vs. struct // classes example #include <iostream> using namespace std; class Rectangle1 { //private by default int width, height; public: ~Rectangle1 (int x, int y){ this.width =x ; this.height = y; } int area() { return width*height; } }; CONTENTS User Defined DT Structure Basics Nested Structures Array of Structures Struct manipulation Structure Pointer Structure & Function Union, enum & typdef Class and Objects struct Rectangle2 { //public by default int width, height; int area() { return width*height; } }; int main () { Rectangle1 rect1 = Reactangle1 (3,4); //constructor cout << "area 1: " << rect.area(); Rectangle2 rect2 = {6, 5}; cout << "area 2: " << rect2.area(); return 0; }
  • 26. Practical Exercise 1. Create a class named 'Student' with a string variable 'name' and an integer variable 'roll_no'. Assign the value of roll_no as '2' and that of name as "John" by creating an object of the class Student. 2. Write a program to print the area and perimeter of a triangle having sides of 3, 4 and 5 units by creating a class named 'Triangle' with the constructor having the three sides as its parameters. 3. Write a program to print the area of a rectangle by creating a class named 'Area' having two functions. First function named as 'setDim' takes the length and breadth of the rectangle as parameters and the second function named as 'getArea' returns the area of the rectangle. Length and breadth of the rectangle are entered through keyboard. 4. Print the sum, difference and product of two complex numbers by creating a class named 'Complex' with separate functions for each operation whose real and imaginary parts are entered by the user. Chapter 7 26
  • 27. Practical Exercise 5. Show how to declare Real as a synonym for float (float and Real can be used interchangeably). 6. Show how to declare the following constants using an enum statement: WINTER =1, SPRING = 2, SUMMER = 3 and FALL = 4. 7. Provide an example that demonstrate the use of enum in defining flags. 8. Which user defined data type is appropriate to design self driving car gear? Justify your answer by providing demonstration example. 9. Assume there are a medical data set stored on cloud (server computer). A client computer access and process each data groups independently. Which user defined data type is appropriate to write the client side program? Justify your answer with demonstration. Chapter 7 27
  • 28. MCQ 1. What does your class can hold? A. data B. functions C. both a & b D. none 2. The union data type differ from structure both in storage allocation and member initialization. A. True B. False 3. Unlike that of union by default the members of class is public. A. True B. False 4. Members of one of the following user defined data type is not associated with fundamental data types. A. enumeration B. class C. structure D. union E) B&C 5. A user defined data types that is useful for embedded programming A. union B. typedef C. class D. enum. Chapter 7 28
  • 29. MCQ 6. An appropriate user defined data types to work with FLAGS; A. strcut B. union C. class D. enum. 7. An appropriate user defined data types to work with FLAGS; A. strcut B. union C. class D. enum. 8. Which of the following is odd in their declaration style? A. strcut B. union C. typedef D. class E. enum 9. There is no programming philosophy between structure and class. A. True B. False 10. Which of the following is not used to create a new Data Type? A. strcut B. union C. typedef E. enum 11. Is it mandatory that the size of all elements in a union should be same? A. True B. False Chapter 7 29
  • 30. Short Answer 1. Compare and contrast structure data type with the following: a) Class b) Union c) Array 2. Explain the importance of enumeration and union types. 3. What is the size of the following user defined data types a) Structure c) Union b) Class d) enum 4. Does structure replace class completely? Justify your answer with examples. Chapter 7 30
  • 31. Reading Resources/Materials Chapter 10 & 11: ✔ Herbert Schildt; C++ from the Ground Up (3rd Edition), 2003 McGraw-Hill, California 94710 U.S.A. Chapter 8: ✔ Bjarne Stroustrup;The C++ Programming Language [4th Edition], Pearson Education, Inc , 2013 Chapter 15: ✔ Diane Zak; An Introduction to Programming with C++ (8th Edition), 2016 Cengage Learning Chapter 10: ✔ Walter Savitch; Problem Solving With C++ [10th edition, University of California, San Diego, 2018 31 Chapter 7
  • 32. Thank You For Your Attention!! 32 Chapter 7