SlideShare a Scribd company logo
1 of 51
Introduction to C++
(CS1123)
By
Dr. Muhammad Aleem,
Department of Computer Science,
Mohammad Ali Jinnah University, Islamabad
Fall 2013
History
• C evolved from two languages (BCPL and B)
• 1980: “C with Classes”
• 1985: C++ 1.0
• 1995: Draft standard
• Developed by Bjarne Stroustrup at Bell Labs
• Based on C, added Object-Oriented
Programming concepts (OOP) in C
• Similar program performance (compared to C)
C vs C++
• Advantages:
– 1. Faster development time (code reuse)
– 2. Creating / using new data types is easier
– 3. Easier memory management
– 4. Stricter syntax & type checking => less bugs
– 5. Easier to implement Data hiding
– 6. Object Oriented concepts
C++ Program Structure
//My first program in C++ First.cpp
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
Preprocessor
Directive (no ;)
IDE and Compilation Steps
C++
Preprocessor
First.cpp
C++ Compiler Linker First.exe
C++ Header
Files
Object code for
library function
Integrated Development Environments (IDEs)
• An IDE is a software application which provides a
comprehensive facility to programmers to Write /Edit
/Debug /Compile the code
• Main components:
–Source code editor
–Debugger
–Complier
–…
IDEs on Windows platform
• Turbo C++
• Microsoft Visual C++
• Dev C++
Input / Output Example
#include <iostream>
#include <string>
using namespace std;
int main ( )
{
string name; //Name of student
cout<< “Enter you name";
cin>>name;
/* Now print hello , and students name */
cout<< “Hello “ << name;
return 0;
}
Comments
• Two types of comments
1. Single line comment //….
2. Multi-line (paragraph) comment /* */
• When compiler sees // it ignores all text after this on
same line
• When it sees /*, it scans for the text */ and ignores
any text between /* and */
Preprocessor Directives
• #include<iostream>
• # is a preprocessor directive.
• The preprocessor runs before the actual compiler and
prepares your program for compilation.
• Lines starting with # are directives to preprocessor to
perform certain tasks, e.g., “include” command
instructs the preprocessor to add the iostream library
in this program
Header files (functionality declarations)
(Turbo C++) (Visual C++)
• #include<iostream.h> or #include <iostream>
• #include<stdlib.h> or #include<stdlib>
• …
std:: Prefix
• std::cout<“Hello World”;
• std::cout<<Marks;
• std::cout<<“Hello ”<<name;
• Scope Resolution Operator ::
• std is a namespace, Namespaces ?
using namespace std;
cout<<“Hello World”;
cout<<Marks;
cout<<“Hello ”<<name;
Namespaces
• Namespace pollution
– Occurs when building large systems from pieces
– Identical globally-visible names clash
– How many programs have a “print” function?
– Very difficult to fix
Namespaces
namespace Mine
{
const float pi = 3.1415925635;
}
void main(){
float x = 6 + Mine::pi;
cout<<x;
}
Multiple Namespaces
• Example…
Omitting std:: prefix
- using directive brings namespaces or its sub-items
into current scope
#include<iostream>
using namespace std;
int main()
{
cout<<“Hello World!”<<endl;
cout<<“Bye!”;
return 0;
}
main( ) function
• Every C++ program start executing from main ( )
• A function is a construct that contains/encapsulates
statements in a block.
• Block starts from “{“ and ends with “}” brace
• Every statement in the block must end with a
semicolon ( ; )
• Examples…
cout and endl
• cout (console output) and the operator
• << referred to as the stream insertion operator
• << “Inserts values of data-items or string to
screen.”
• >> referred as stream extraction operator, extracts
value from stream and puts into “Variables”
• A string must be enclosed in quotation marks.
• endl stands for end line, sending ‘endl’ to the
console outputs a new line
Input and type
–cin>>name; reads characters until a
whitespace character is seen
–Whitespace characters:
• space,
• tab,
• newline {enter key}
Variables
- Variables are identifiers which represent
some unknown, or variable-value.
- A variable is named storage (some
memory address’s contents)
x = a + b;
Speed_Limit = 90;
Variable declaration
TYPE <Variable Name> ;
Examples:
int marks;
double Pi;
int suM;
char grade;
- NOTE: Variable names are case sensitive in C++ ??
Variable declaration
• C++ is case sensitive
–Example:
area
Area
AREA
ArEa
are all seen as different variables
Names
Valid Names
• Start with a letter
• Contains letters
• Contains digits
• Contains underscores
• Do not start names with underscores: _age
• Don’t use C++ Reserve Words
C++ Reserve Words
• auto break
• case char
• const continue
• default do
• double else
• enum extern
• float for
• goto if
int long
register return
short signed
sizeof static
struct switch
typedef union
unsigned void
volatile while
Names
• Choose meaningful names
– Don’t use abbreviations and acronyms: mtbf, TLA,
myw, nbv
• Don't use overly long names
• Ok:
partial_sum
element_count
staple_partition
• Too long (valid but not good practice):
remaining_free_slots_in_the_symbol_table
Which are Legal Identifiers?
AREA
2D
Last Chance
x_yt3
Num-2
Grade***
area_under_the_curve
_Marks
#values
areaoFCirCLe
%done
return
Ifstatement
String input (Variables)
// Read first and second name
#include<iostream>
#include<string>
int main() {
string first;
string second;
cout << “Enter your first and second names:";
cin >> first >> second;
cout << "Hello “ << first << “ “ << second;
return 0;
}
Declaring Variables
• Before using you must declare the variables
Declaring Variables…
• When we declare a variable, what happens ?
– Memory allocation
• How much memory (data type)
– Memory associated with a name (variable name)
– The allocated space has a unique address
Marks
FE07
%$^%$%$*^%int Marks;
Using Variables: Initialization
• Variables may be given initial values, or
initialized, when declared. Examples:
int length = 7 ;
float diameter = 5.9 ;
char initial = ‘A’ ;
7
5.9
‘A’
length
diameter
initial
• Are the two occurrences of “a” in this expression the
same?
a = a + 1;
One on the left of the assignment refers to the location
of the variable (whose name is a, or address);
One on the right of the assignment refers to the value of
the variable (whose name is a);
• Two attributes of variables lvalue and rvalue
• The lvalue of a variable is its address
• The rvalue of a variable is its value
rvalue and lvalue
• Rule: On the left side of an assignment there
must be a lvalue or a variable (address of
memory location)
int i, j;
i = 7;
7 = i;
j * 4 = 7;
rvalue and lvalue
Data Types
Three basic PRE-DEFINED data types:
1. To store whole numbers
– int, long int, short int, unsigned int
2. To store real numbers
– float, double
3. Characters
– char
Types and literals
• Built-in types
– Boolean type
• bool
– Character types
• char
– Integer types
• int
–and short and
long
– Floating-point types
• double
–and float
• Standard-library types
– string
Literals
• Boolean: true, false
• Character literals
– 'a', 'x', '4', 'n', '$'
• Integer literals
– 0, 1, 123, -6,
• Floating point literals
– 1.2, 13.345, 0.3, -0.54,
• String literals
– "asdf”, “Helllo”, Pakistan”
Types
• C++ provides a set of types
– E.g. bool, char, int, double called “built-in types”
• C++ programmers can define new types
– Called “user-defined types”
• The C++ standard library provides a set of types
– E.g. string, vector, ..
– (for vector type  #include<vector> )
Declaration and initialization
int a = 7;
int b = 9;
char c = 'a';
double x = 1.2;
string s1 = "Hello, world";
string s2 = "1.2";
7
9
a
1.2
Hello, world
1.2
char type
• Reserves 8 bits or 1 byte of memory
• A char variable may represent:
– ASCII character 'A‘, 'a‘, '1‘, '4‘, '*‘
– signed integers 127 to -128 (Default)
– unsigned integer in range 255 to 0
Examples:
–char grade;
–unsigned char WeekNumber= 200;
–char cGradeA = 65;
–char cGradeAA = ‘A';
char type
• Example program…
Special characters
• Text string special characters (Escape Sequences)
– n = newline
– r = carriage return
– t = tab
– " = double quote
– ? = question
–  = backslash
– ' = single quote
• Examples:
cout << "Hellot" << "I’m Bobn";
cout << "123nabc “;
Escape Sequence
• Example Program:
int type
• 16 bits (2 bytes) on Windows 16-bits
– int -32,768 to 32,767
– unsigned int 0 to 65,535
– Also on Turbo C++, 2 bytes for int
• 32 bits (4 bytes) on Win32 (Visual C++)
– int -2,147,483,648 to 2,147,483,647
– unsigned int 0 to 4,294,967,295
int type
• Examples:
int earth_diameter;
int seconds_in_week= 604800;
unsigned int Height = 100;
unsigned int Width = 50000;
int type (long and short)
• long int
–reserves 32 bits (4 bytes) of memory
–signed long -2,147,483,648 to 2,147,483,647
–unsigned long int 0 to 4,294,967,295
• short int
–reserves 16 bits (2 bytes) of memory
–signed short int -32,768 to 32,767
–unsigned short int 0 to 65,535
int (long and short)
• Examples:
long int light_speed=186000;
unsigned long int seconds= 604800;
short int Height = 30432;
unsigned short int Width = 50000;
Home Work-1
• Use Visual C++ on Windows and get information
for following data types:
– int
– short
– long int
– short int
– char
• Use ( cout << sizeof( intVar ); ) operator to get
this information, Example:…
Real Values
• float
– Reserves 32 bits (4 bytes) of memory
– + 1.180000x10
+38
, 7-digit precision
– Example: float radius= 33.4221;
• double
– Reserves 64 bits (8 bytes) of memory
– + 1.79000000000000x10
+308
, 15-digit precision
– Example: double Distance = 257.5434342;
• long double
– Reserves 80 bits (10 bytes) of memory , 18-digit precision
– Example: long double EarthMass = 25343427.53434233;
Home Work-2
• Use Visual C++ on Windows and get information
for following data types:
– float
– double
– long double
• Use ( cout << sizeof(floatVar); ) operator to get
this information, Example:…
bool Type
• Only 1 bit of memory required
– Generally, 1 byte because is reserved
• Literal values:
– true
– false
• Can be used in logical conditions:
– Examples:
bool RainToday=false;
bool passed;
passed = GetResult(80);
string type
• Special data type supports working with “strings”
#include <string>
string <variable_name> = “string literal”;
• string type variables in programs:
string firstName, lastName;
• Using with assignment operator:
firstName = “Mohammad";
lastName = “Ali";
• Display using cout
cout << firstName << " " << lastName;
Getting input in string with Spaces
string s1;
cin>> s1; //Spaces will not be input in s1
//Following statements read spaces in “string”
string s1;
getline(cin, s1); //Spaces will be input in s1
string type
• Find Errors in the example program…

More Related Content

What's hot

45 Days C++ Programming Language Training in Ambala
45 Days C++ Programming Language Training in Ambala45 Days C++ Programming Language Training in Ambala
45 Days C++ Programming Language Training in Ambalajatin batra
 
C++ PROGRAMMING BASICS
C++ PROGRAMMING BASICSC++ PROGRAMMING BASICS
C++ PROGRAMMING BASICSAami Kakakhel
 
Introduction to cpp
Introduction to cppIntroduction to cpp
Introduction to cppNilesh Dalvi
 
(2) cpp imperative programming
(2) cpp imperative programming(2) cpp imperative programming
(2) cpp imperative programmingNico Ludwig
 
C++ Overview
C++ OverviewC++ Overview
C++ Overviewkelleyc3
 
Advanced Programming C++
Advanced Programming C++Advanced Programming C++
Advanced Programming C++guestf0562b
 
C++ language basic
C++ language basicC++ language basic
C++ language basicWaqar Younis
 
basics of C and c++ by eteaching
basics of C and c++ by eteachingbasics of C and c++ by eteaching
basics of C and c++ by eteachingeteaching
 
C++ Programming Language Training in Ambala ! Batra Computer Centre
C++ Programming Language Training in Ambala ! Batra Computer CentreC++ Programming Language Training in Ambala ! Batra Computer Centre
C++ Programming Language Training in Ambala ! Batra Computer Centrejatin batra
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Languagesatvirsandhu9
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Learning C++ - Introduction to c++ programming 1
Learning C++ - Introduction to c++ programming 1Learning C++ - Introduction to c++ programming 1
Learning C++ - Introduction to c++ programming 1Ali Aminian
 

What's hot (20)

45 Days C++ Programming Language Training in Ambala
45 Days C++ Programming Language Training in Ambala45 Days C++ Programming Language Training in Ambala
45 Days C++ Programming Language Training in Ambala
 
C++ PROGRAMMING BASICS
C++ PROGRAMMING BASICSC++ PROGRAMMING BASICS
C++ PROGRAMMING BASICS
 
Introduction to cpp
Introduction to cppIntroduction to cpp
Introduction to cpp
 
Basics of c++
Basics of c++Basics of c++
Basics of c++
 
(2) cpp imperative programming
(2) cpp imperative programming(2) cpp imperative programming
(2) cpp imperative programming
 
C++ Overview
C++ OverviewC++ Overview
C++ Overview
 
Advanced Programming C++
Advanced Programming C++Advanced Programming C++
Advanced Programming C++
 
C++ Language
C++ LanguageC++ Language
C++ Language
 
Introduction to C++
Introduction to C++Introduction to C++
Introduction to C++
 
C++ presentation
C++ presentationC++ presentation
C++ presentation
 
C++ language basic
C++ language basicC++ language basic
C++ language basic
 
basics of C and c++ by eteaching
basics of C and c++ by eteachingbasics of C and c++ by eteaching
basics of C and c++ by eteaching
 
C++ Programming Language Training in Ambala ! Batra Computer Centre
C++ Programming Language Training in Ambala ! Batra Computer CentreC++ Programming Language Training in Ambala ! Batra Computer Centre
C++ Programming Language Training in Ambala ! Batra Computer Centre
 
Intro to c++
Intro to c++Intro to c++
Intro to c++
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Language
 
Introduction to c++
Introduction to c++Introduction to c++
Introduction to c++
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Learning C++ - Introduction to c++ programming 1
Learning C++ - Introduction to c++ programming 1Learning C++ - Introduction to c++ programming 1
Learning C++ - Introduction to c++ programming 1
 
Getting Started with C++
Getting Started with C++Getting Started with C++
Getting Started with C++
 
C++ theory
C++ theoryC++ theory
C++ theory
 

Viewers also liked

Viewers also liked (15)

C++ Basics
C++ BasicsC++ Basics
C++ Basics
 
Turbo C
Turbo CTurbo C
Turbo C
 
Operating Systems - Intro to C++
Operating Systems - Intro to C++Operating Systems - Intro to C++
Operating Systems - Intro to C++
 
Turbo c++
Turbo c++Turbo c++
Turbo c++
 
Apclass
ApclassApclass
Apclass
 
Apclass (2)
Apclass (2)Apclass (2)
Apclass (2)
 
CBSE Class XI Programming in C++
CBSE Class XI Programming in C++CBSE Class XI Programming in C++
CBSE Class XI Programming in C++
 
Multidimensional arrays in C++
Multidimensional arrays in C++Multidimensional arrays in C++
Multidimensional arrays in C++
 
Overview of c++
Overview of c++Overview of c++
Overview of c++
 
Understand Decision structures in c++ (cplusplus)
Understand Decision structures in c++ (cplusplus)Understand Decision structures in c++ (cplusplus)
Understand Decision structures in c++ (cplusplus)
 
Overview of c++ language
Overview of c++ language   Overview of c++ language
Overview of c++ language
 
Assembly language 8086 intermediate
Assembly language 8086 intermediateAssembly language 8086 intermediate
Assembly language 8086 intermediate
 
Revision notes for exam 2011 computer science with C++
Revision notes for exam 2011 computer science with C++Revision notes for exam 2011 computer science with C++
Revision notes for exam 2011 computer science with C++
 
Structure of C++ - R.D.Sivakumar
Structure of C++ - R.D.SivakumarStructure of C++ - R.D.Sivakumar
Structure of C++ - R.D.Sivakumar
 
Structure in c
Structure in cStructure in c
Structure in c
 

Similar to Cs1123 3 c++ overview

Similar to Cs1123 3 c++ overview (20)

Cs1123 11 pointers
Cs1123 11 pointersCs1123 11 pointers
Cs1123 11 pointers
 
C
CC
C
 
C language
C languageC language
C language
 
2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++2 BytesC++ course_2014_c1_basicsc++
2 BytesC++ course_2014_c1_basicsc++
 
c++ UNIT II.pptx
c++ UNIT II.pptxc++ UNIT II.pptx
c++ UNIT II.pptx
 
C++ process new
C++ process newC++ process new
C++ process new
 
Modern C++
Modern C++Modern C++
Modern C++
 
Abhishek lingineni
Abhishek lingineniAbhishek lingineni
Abhishek lingineni
 
CPlusPus
CPlusPusCPlusPus
CPlusPus
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C++ programming: Basic introduction to C++.ppt
C++ programming: Basic introduction to C++.pptC++ programming: Basic introduction to C++.ppt
C++ programming: Basic introduction to C++.ppt
 
C++_programs.ppt
C++_programs.pptC++_programs.ppt
C++_programs.ppt
 
C programming language
C programming languageC programming language
C programming language
 
C cpluplus 2
C cpluplus 2C cpluplus 2
C cpluplus 2
 
Programming using c++ tool
Programming using c++ toolProgramming using c++ tool
Programming using c++ tool
 
C++ programming intro
C++ programming introC++ programming intro
C++ programming intro
 

More from TAlha MAlik

Data file handling
Data file handlingData file handling
Data file handlingTAlha MAlik
 
Cs1123 12 structures
Cs1123 12 structuresCs1123 12 structures
Cs1123 12 structuresTAlha MAlik
 
Cs1123 10 file operations
Cs1123 10 file operationsCs1123 10 file operations
Cs1123 10 file operationsTAlha MAlik
 
Cs1123 8 functions
Cs1123 8 functionsCs1123 8 functions
Cs1123 8 functionsTAlha MAlik
 
Cs1123 5 selection_if
Cs1123 5 selection_ifCs1123 5 selection_if
Cs1123 5 selection_ifTAlha MAlik
 
Cs1123 4 variables_constants
Cs1123 4 variables_constantsCs1123 4 variables_constants
Cs1123 4 variables_constantsTAlha MAlik
 
Cs1123 2 comp_prog
Cs1123 2 comp_progCs1123 2 comp_prog
Cs1123 2 comp_progTAlha MAlik
 
Cs1123 9 strings
Cs1123 9 stringsCs1123 9 strings
Cs1123 9 stringsTAlha MAlik
 

More from TAlha MAlik (11)

Data file handling
Data file handlingData file handling
Data file handling
 
Cs1123 12 structures
Cs1123 12 structuresCs1123 12 structures
Cs1123 12 structures
 
Cs1123 10 file operations
Cs1123 10 file operationsCs1123 10 file operations
Cs1123 10 file operations
 
Cs1123 8 functions
Cs1123 8 functionsCs1123 8 functions
Cs1123 8 functions
 
Cs1123 6 loops
Cs1123 6 loopsCs1123 6 loops
Cs1123 6 loops
 
Cs1123 7 arrays
Cs1123 7 arraysCs1123 7 arrays
Cs1123 7 arrays
 
Cs1123 5 selection_if
Cs1123 5 selection_ifCs1123 5 selection_if
Cs1123 5 selection_if
 
Cs1123 4 variables_constants
Cs1123 4 variables_constantsCs1123 4 variables_constants
Cs1123 4 variables_constants
 
Cs1123 2 comp_prog
Cs1123 2 comp_progCs1123 2 comp_prog
Cs1123 2 comp_prog
 
Cs1123 1 intro
Cs1123 1 introCs1123 1 intro
Cs1123 1 intro
 
Cs1123 9 strings
Cs1123 9 stringsCs1123 9 strings
Cs1123 9 strings
 

Recently uploaded

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Cs1123 3 c++ overview

  • 1. Introduction to C++ (CS1123) By Dr. Muhammad Aleem, Department of Computer Science, Mohammad Ali Jinnah University, Islamabad Fall 2013
  • 2. History • C evolved from two languages (BCPL and B) • 1980: “C with Classes” • 1985: C++ 1.0 • 1995: Draft standard • Developed by Bjarne Stroustrup at Bell Labs • Based on C, added Object-Oriented Programming concepts (OOP) in C • Similar program performance (compared to C)
  • 3. C vs C++ • Advantages: – 1. Faster development time (code reuse) – 2. Creating / using new data types is easier – 3. Easier memory management – 4. Stricter syntax & type checking => less bugs – 5. Easier to implement Data hiding – 6. Object Oriented concepts
  • 4. C++ Program Structure //My first program in C++ First.cpp #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } Preprocessor Directive (no ;)
  • 5. IDE and Compilation Steps C++ Preprocessor First.cpp C++ Compiler Linker First.exe C++ Header Files Object code for library function
  • 6. Integrated Development Environments (IDEs) • An IDE is a software application which provides a comprehensive facility to programmers to Write /Edit /Debug /Compile the code • Main components: –Source code editor –Debugger –Complier –…
  • 7. IDEs on Windows platform • Turbo C++ • Microsoft Visual C++ • Dev C++
  • 8. Input / Output Example #include <iostream> #include <string> using namespace std; int main ( ) { string name; //Name of student cout<< “Enter you name"; cin>>name; /* Now print hello , and students name */ cout<< “Hello “ << name; return 0; }
  • 9. Comments • Two types of comments 1. Single line comment //…. 2. Multi-line (paragraph) comment /* */ • When compiler sees // it ignores all text after this on same line • When it sees /*, it scans for the text */ and ignores any text between /* and */
  • 10. Preprocessor Directives • #include<iostream> • # is a preprocessor directive. • The preprocessor runs before the actual compiler and prepares your program for compilation. • Lines starting with # are directives to preprocessor to perform certain tasks, e.g., “include” command instructs the preprocessor to add the iostream library in this program
  • 11. Header files (functionality declarations) (Turbo C++) (Visual C++) • #include<iostream.h> or #include <iostream> • #include<stdlib.h> or #include<stdlib> • …
  • 12. std:: Prefix • std::cout<“Hello World”; • std::cout<<Marks; • std::cout<<“Hello ”<<name; • Scope Resolution Operator :: • std is a namespace, Namespaces ? using namespace std; cout<<“Hello World”; cout<<Marks; cout<<“Hello ”<<name;
  • 13. Namespaces • Namespace pollution – Occurs when building large systems from pieces – Identical globally-visible names clash – How many programs have a “print” function? – Very difficult to fix
  • 14. Namespaces namespace Mine { const float pi = 3.1415925635; } void main(){ float x = 6 + Mine::pi; cout<<x; }
  • 16. Omitting std:: prefix - using directive brings namespaces or its sub-items into current scope #include<iostream> using namespace std; int main() { cout<<“Hello World!”<<endl; cout<<“Bye!”; return 0; }
  • 17. main( ) function • Every C++ program start executing from main ( ) • A function is a construct that contains/encapsulates statements in a block. • Block starts from “{“ and ends with “}” brace • Every statement in the block must end with a semicolon ( ; ) • Examples…
  • 18. cout and endl • cout (console output) and the operator • << referred to as the stream insertion operator • << “Inserts values of data-items or string to screen.” • >> referred as stream extraction operator, extracts value from stream and puts into “Variables” • A string must be enclosed in quotation marks. • endl stands for end line, sending ‘endl’ to the console outputs a new line
  • 19. Input and type –cin>>name; reads characters until a whitespace character is seen –Whitespace characters: • space, • tab, • newline {enter key}
  • 20. Variables - Variables are identifiers which represent some unknown, or variable-value. - A variable is named storage (some memory address’s contents) x = a + b; Speed_Limit = 90;
  • 21. Variable declaration TYPE <Variable Name> ; Examples: int marks; double Pi; int suM; char grade; - NOTE: Variable names are case sensitive in C++ ??
  • 22. Variable declaration • C++ is case sensitive –Example: area Area AREA ArEa are all seen as different variables
  • 23. Names Valid Names • Start with a letter • Contains letters • Contains digits • Contains underscores • Do not start names with underscores: _age • Don’t use C++ Reserve Words
  • 24. C++ Reserve Words • auto break • case char • const continue • default do • double else • enum extern • float for • goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
  • 25. Names • Choose meaningful names – Don’t use abbreviations and acronyms: mtbf, TLA, myw, nbv • Don't use overly long names • Ok: partial_sum element_count staple_partition • Too long (valid but not good practice): remaining_free_slots_in_the_symbol_table
  • 26. Which are Legal Identifiers? AREA 2D Last Chance x_yt3 Num-2 Grade*** area_under_the_curve _Marks #values areaoFCirCLe %done return Ifstatement
  • 27. String input (Variables) // Read first and second name #include<iostream> #include<string> int main() { string first; string second; cout << “Enter your first and second names:"; cin >> first >> second; cout << "Hello “ << first << “ “ << second; return 0; }
  • 28. Declaring Variables • Before using you must declare the variables
  • 29. Declaring Variables… • When we declare a variable, what happens ? – Memory allocation • How much memory (data type) – Memory associated with a name (variable name) – The allocated space has a unique address Marks FE07 %$^%$%$*^%int Marks;
  • 30. Using Variables: Initialization • Variables may be given initial values, or initialized, when declared. Examples: int length = 7 ; float diameter = 5.9 ; char initial = ‘A’ ; 7 5.9 ‘A’ length diameter initial
  • 31. • Are the two occurrences of “a” in this expression the same? a = a + 1; One on the left of the assignment refers to the location of the variable (whose name is a, or address); One on the right of the assignment refers to the value of the variable (whose name is a); • Two attributes of variables lvalue and rvalue • The lvalue of a variable is its address • The rvalue of a variable is its value rvalue and lvalue
  • 32. • Rule: On the left side of an assignment there must be a lvalue or a variable (address of memory location) int i, j; i = 7; 7 = i; j * 4 = 7; rvalue and lvalue
  • 33. Data Types Three basic PRE-DEFINED data types: 1. To store whole numbers – int, long int, short int, unsigned int 2. To store real numbers – float, double 3. Characters – char
  • 34. Types and literals • Built-in types – Boolean type • bool – Character types • char – Integer types • int –and short and long – Floating-point types • double –and float • Standard-library types – string Literals • Boolean: true, false • Character literals – 'a', 'x', '4', 'n', '$' • Integer literals – 0, 1, 123, -6, • Floating point literals – 1.2, 13.345, 0.3, -0.54, • String literals – "asdf”, “Helllo”, Pakistan”
  • 35. Types • C++ provides a set of types – E.g. bool, char, int, double called “built-in types” • C++ programmers can define new types – Called “user-defined types” • The C++ standard library provides a set of types – E.g. string, vector, .. – (for vector type  #include<vector> )
  • 36. Declaration and initialization int a = 7; int b = 9; char c = 'a'; double x = 1.2; string s1 = "Hello, world"; string s2 = "1.2"; 7 9 a 1.2 Hello, world 1.2
  • 37. char type • Reserves 8 bits or 1 byte of memory • A char variable may represent: – ASCII character 'A‘, 'a‘, '1‘, '4‘, '*‘ – signed integers 127 to -128 (Default) – unsigned integer in range 255 to 0 Examples: –char grade; –unsigned char WeekNumber= 200; –char cGradeA = 65; –char cGradeAA = ‘A';
  • 38. char type • Example program…
  • 39. Special characters • Text string special characters (Escape Sequences) – n = newline – r = carriage return – t = tab – " = double quote – ? = question – = backslash – ' = single quote • Examples: cout << "Hellot" << "I’m Bobn"; cout << "123nabc “;
  • 41. int type • 16 bits (2 bytes) on Windows 16-bits – int -32,768 to 32,767 – unsigned int 0 to 65,535 – Also on Turbo C++, 2 bytes for int • 32 bits (4 bytes) on Win32 (Visual C++) – int -2,147,483,648 to 2,147,483,647 – unsigned int 0 to 4,294,967,295
  • 42. int type • Examples: int earth_diameter; int seconds_in_week= 604800; unsigned int Height = 100; unsigned int Width = 50000;
  • 43. int type (long and short) • long int –reserves 32 bits (4 bytes) of memory –signed long -2,147,483,648 to 2,147,483,647 –unsigned long int 0 to 4,294,967,295 • short int –reserves 16 bits (2 bytes) of memory –signed short int -32,768 to 32,767 –unsigned short int 0 to 65,535
  • 44. int (long and short) • Examples: long int light_speed=186000; unsigned long int seconds= 604800; short int Height = 30432; unsigned short int Width = 50000;
  • 45. Home Work-1 • Use Visual C++ on Windows and get information for following data types: – int – short – long int – short int – char • Use ( cout << sizeof( intVar ); ) operator to get this information, Example:…
  • 46. Real Values • float – Reserves 32 bits (4 bytes) of memory – + 1.180000x10 +38 , 7-digit precision – Example: float radius= 33.4221; • double – Reserves 64 bits (8 bytes) of memory – + 1.79000000000000x10 +308 , 15-digit precision – Example: double Distance = 257.5434342; • long double – Reserves 80 bits (10 bytes) of memory , 18-digit precision – Example: long double EarthMass = 25343427.53434233;
  • 47. Home Work-2 • Use Visual C++ on Windows and get information for following data types: – float – double – long double • Use ( cout << sizeof(floatVar); ) operator to get this information, Example:…
  • 48. bool Type • Only 1 bit of memory required – Generally, 1 byte because is reserved • Literal values: – true – false • Can be used in logical conditions: – Examples: bool RainToday=false; bool passed; passed = GetResult(80);
  • 49. string type • Special data type supports working with “strings” #include <string> string <variable_name> = “string literal”; • string type variables in programs: string firstName, lastName; • Using with assignment operator: firstName = “Mohammad"; lastName = “Ali"; • Display using cout cout << firstName << " " << lastName;
  • 50. Getting input in string with Spaces string s1; cin>> s1; //Spaces will not be input in s1 //Following statements read spaces in “string” string s1; getline(cin, s1); //Spaces will be input in s1
  • 51. string type • Find Errors in the example program…