Computer First Quarter Notes: A. C++ (Reference Link
Computer First Quarter Notes: A. C++ (Reference Link
WHAT IS C++?
- A CROSS-PLATFORM LANGUAGE THAT CAN BE USED TO CREATE HIGH-PERFORMANCE
APPLICATIONS.
- DEVELOPED BY BJARNE STROUSTRUP, AS AN EXTENSION TO THE C LANGUAGE.
- GIVES PROGRAMMERS A HIGH LEVEL OF CONTROL OVER SYSTEM RESOURCES AND MEMORY.
- WAS UPDATED 3 MAJOR TIMES IN 2011, 2014, AND 2017 TO C++11, C++14, AND C++17.
LINE 1
- #include <iostream> IS A HEADER FILE LIBRARY THAT LETS US WORK WITH INPUT AND OUTPUT
OBJECTS, SUCH AS “cout” (USED IN LINE 5). HEADER FILES ADD FUNCTIONALITY TO C++
PROGRAMS.
- # MEANS THAT IT IS PROCESSED BY THE PREPROCESSOR BEFORE COMPILING
LINE 2
- using namespace std MEANS THAT WE CAN USE NAMES FOR OBJECTS AND VARIABLES FROM
THE STANDARD LIBRARY.
LINE 3
- A BLANK LINE. C++ IGNORES WHITE SPACE.
LINE 4
- ANOTHER THING THAT ALWAYS APPEAR IN A C++ PROGRAM, IS int main(). THIS IS CALLED
A FUNCTION. ANY CODE INSIDE ITS CURLY BRACKETS {} WILL BE EXECUTED.
LINE 5
cout (PRONOUNCED "SEE-OUT") IS AN OBJECT USED TOGETHER WITH THE INSERTION
OPERATOR (<<) TO OUTPUT/PRINT TEXT. IN OUR EXAMPLE IT WILL OUTPUT "HELLO WORLD".
- BY USING THE \n CHARACTER AFTER THE INPUT VARIABLES AND BEFORE THE QUOTE
MARKS “
*TIP: TWO \n CHARACTERS WILL CREATE A BLANK LINE
- BY USING THE endl MANIPULATOR. AFTER THE QUOTE MARKS “, WHICH ADDITONALLY
FOLLOWS THE CHARACTERS <<, THEN FOLLOWS THE endl MANIPULATOR.
ADDTITIONAL ESCAPE SEQUENCES FOR A SIMPLE PROGRAM OF TEXT
- ESCAPE SEQUENCES ARE SPECIAL CHARACTERS USED IN CONTROL STRING TO MODIFY THE
FORMAT OF AN OUTPUT. THESE SPECIFIC CHARACTERS ARE TRANSLATED INTO ANOTHER
CHARACTER OR A SEQUENCE OF CHARACTERS THAT MAY BE DIFFICULT TO REPRESENT
DIRECTLY.
- ASIDE FROM USING THE endl MANIPULATOR, YOU CAN USE OTHER ESCAPE SEQUENCES TO
ACHIEVE YOUR DESIRED OUTPUT.
ESCAPE DESCRIPTION
SEQUENCE
S
\n NEW LINE. INSERTS A NEW LINE IN THE TEXT AT THIS POINT.
\t HORIZONTAL TAB. INSERTS A TAB IN THE TEXT AT THIS POINT.
\r CARRIAGE RETURN. POSITION THE SCREEN CURSOR TO THE BEGINNING OF THE
CURRENT LINE. DO NOT ADVANCE TO THE NEXT LINE.
\a ALERT. SOUND THE SYSTEM BELL.
\\ BACKSLASH. USED TO INSERT/PRINT A BACKSLASH CHARACTER AT THIS POINT.
\” DOUBLE QUOTE. USED TO INSERT/PRINT A DOUBLE QUOTE CHARACTER AT THIS
POINT.
PREPROCESSOR DIRECTIVES
- THE FIRST LINE BEGINS WITH THE NUMBER SYMBOL, #, WHICH INDICATES THAT THE LINE IS
INTENDED FOR THE PREPROCESSOR.
- THESE PREPROCESSOR DIRECTIVES GIVE INSTRUCTIONS TO THE COMPILER TO PREPROCESS
THE INFORMATION BEFORE ACTUAL COMPILATION STARTS.
- THE PREPROCESSOR IS JUST ONE STEP IN THE FIRST TRANSLATION PHASE AND NO OBJECT
CODE IS CREATED AT THIS TIME.
- THE include DIRECTIVE COPIES THE FILES FROM THE HEADER FILE INTO YOUR PROGRAM.
BASICALLY, THIS DIRECTIVE IS NEEDED IN ORDER TO ALLOW ALL YOUR VARIABLES, VALUES,
LABELS, AND FUNCTIONS, EVERYTHING IN YOUR PROGRAM TO WORK. THE HEADER FILE WILL
BE EXPLAINED FURTHER MORE BELOW.
- EXAMPLE.
#include <iostream>
HEADER FILE
- IN THE EXAMPLE ABOVE, THE NAME WITHIN THE INSERTION (<) AND EXTRACTION (>)
CHARACTERS IS iostream.
-THIS NAME IS WHAT WE REFER TO AS A HEADER FILE. IT IS A TEXT FILE CONTAINING
DECLARATIONS AND MACROS.
- WRITING YOUR PREPROCESSOR WITH THE HEADER FILE LIKE THIS WILL ALLOW THE
PROGRAM/CODE ACCESS TO ALL THE INFORMATION CONTAINED IN IT.
- THE HEADER FILE iostream COMPRISES CONVENTIONS FOR INPUT AND OUTPUT STREAMS. THE
WORD stream INDICATES THAT THE INFORMATION INVOLVED WILL BE TREATED AS A FLOW OF
DATA.
- PAY ATTENTION TO THE FOLLOWING POINTS WHEN USING HEADER FILES:
- HEADER FILES SHOULD GENERALLY BE INCLUDED AT THE START OF A PROGRAM
BEFORE ANY OTHER DECLARATIONS
- YOU CAN ONLY NAME ONE HEADER FILE PER #INCLUDE DIRECTIVE
- THE FILE NAME MUST BE ENCLOSED IN ANGLED BRACKETS < ... > OR DOUBLE QUOTES
" ... ".
PREDEFINED NAMES
- FOUND IN THE NEXT LINE AFTER THE PREPROCESSOR DIRECTIVE WITH HEADER FILE.
- PREDEFINED NAMES IN C++ ARE TO BE FOUND IN THE std (STANDARD) namespace. THE using
DIRECTIVE ALLOWS DIRECT ACCESS TO THE NAMES OF THE std namespace. THIS IS IMPORTANT
BECAUSE namespace IS A COLLECTION OF NAMES AND THEIR DEFINITIONS. IT ALLOWS
namespaces TO USE THE SAME NAMES WITHOUT CONFUSION.
FUNCTION main()
int main () {
C++ VARIABLES
- ARE CONTAINERS FOR STORING DATA VALUES
- ARE MEMORY ADDRESSES WHERE DATA CAN BE STORED AND CHANGED.
- THESE ARE THE C++ DATA TYPES AND THERE ARE FOUR PREMITIVE DATA TYPES IN IT:
1. INTEGRAL TYPES
- REPRESENT WHOLE NUMBERS AND THEIR NEGATIVES; DECLARED AS int, short,
or long.
2. CHARACTER TYPES
- REPREPSENT SINGLE CHARACTERS; DECLARED AS char; STORED BY ASCII
VALUES.
3. BOOLEAN TYPES
- HAS ONLY TWO VALUES (TRUE AND FALSE); WILL NOT PRINT DIRECTLY;
DECLARED AS bool.
4. FLOATING TYPES
- REPRESENT REAL NUMBERS WITH A DECIMAL POINT; DECLARED AS float or
double; SCIENTIFIC NOTATION WHERE e (OR E) STAND FOR “TIMES TO THE” (EX.
55-E6)
- (OPTIONAL TO STUDY) THESE PREMITIVE DATA TYPES IN C++ IS FURTHER CLASSIFIED INTO
MORE SPRCIFIC DATA TYPES WITH USES OF THEIR OWN SUCH AS:
int - STORES INTEGERS (WHOLE NUMBERS), WITHOUT DECIMALS, SUCH AS 123 OR -123
double/float - STORES FLOATING POINT NUMBERS, WITH DECIMALS, SUCH AS 19.99 OR
-19.99. STORES FRACTIONAL NUMBERS, CONTAINING ONE OR MORE DECIMALS.
SUFFICIENT FOR STORING 15 DECIMAL DIGITS.
char - STORES SINGLE CHARACTERS, SUCH AS 'A' OR 'B'. CHAR VALUES ARE
SURROUNDED BY SINGLE QUOTES. STORES A SINGLE CHARACTER/LETTER/NUMBER, OR
ASCII VALUES.
string - STORES TEXT, SUCH AS "HELLO WORLD". STRING VALUES ARE SURROUNDED BY
DOUBLE QUOTES. LETTERS, NUMBERS, AND SYMBOLS. DOES NOT DO MATH
CALCULATIONS.
bool (Boolean) - STORES VALUES WITH TWO STATES: TRUE OR FALSE. 0 REPRESENTS
FALSE AND ANY NON-ZERO NUMBER REPRESENTS TRUE.
- BEFORE YOU CAN USE VARIABLES, YOU NEED TO DECLARE THEM FIRST. THIS CAN BE SEEN AT
THE TOP OF THE PROGRAM IN THIS CASE.
- DECLARING A VARIABLE MEANS SPECIFYING BOTH ITS DATA TYPE (EX. string, int) AND NAME
(integer1, sum).
- YOU CAN DECLARE SEVERAL VARIABLES OF THE SAME TYPE IN ONE DECLARATION (ONE LINE)
BY USING A COMMA-SEPARATED LIST.
- EXAMPLE.
int integer1, integer2, sum;
WHEREIN int IS THE DATA TYPE AND integer1, interg2, sum ARE THE NAMES OF THE
VARIABLES.
- ALL C++ VARIABLES MUST BE IDENTIFIED WITH UNIQUE NAMES. THESE UNIQUE NAMES ARE
CALLED IDENTIFIERS.
- NOT ONLY VARIABLES, IDENTIFIERS ARE ALSO USED TO DENOTES LABELS, TYPES, CONSTANTS,
OR FUNCTIONS IN A C++ PROGRAM.
- THE GENERAL RULES FOR CONSTRUCTING NAMES FOR VARIABLES (UNIQUE IDENTIFIERS) ARE:
C++ EXPRESSIONS
- A VALID ARRANGEMENT OF VARIABLES. CONSTANTS, AND OPERATORS.
- EACH EXPRESSION CAN BE EVALUATED TO COMPUTE A VALUE OF A GIVEN TYPE.
- AN EXPRESSION CAN BE:
A VARIABLE OR A CONSTANT (count, 100)
AN OPERATION (a+b, a*2)
FUNCTION CALL (getRectangleArea(2,4))
- ASSIGNMENT OPERATOR IN EXPRESSIONS IS USED TO ASSIGN OR GIVE A VALUE TO A
VARIABLE. THIS IS DENOTED AS AN EQUAL SIGN (=). THE VARIABLE IS ALWAYS ON THE LEFT SIDE
WHILE THE EXPRESSION IS ON THE RIGHT. *VARIABLES KEEP THEIR ASSIGNED VALUES UNTIL
CHANGED BY ANOTHER ASSIGNMENT STATEMENT (ASSIGNING A DIFFERENT VALUE) OR
READING IN A NEW VALUE (INPUTTING A NEW VALUE FROM KEYBOARD).
- THE ASSIGNMENT OPERATOR OPERATES AS CAN BE SEEN BELOW. THIS IS WHAT WE
CALL ASSIGNMENT OPERATOR SYNTAX. THIS IS BASICALLY HOW THE PROGRAM WORKS
WITH THE OPERATOR.
VARIABLE = EXPRESSION
* EXPRESSION ON THE RIGHT IS EVALUATED OR SOLVED.
* THE RESULTING VALUE IS STORED IN THE MEMORY LOCATION OF THE
VARIABLE ON THE LEFT.
NOTE: AN AUTOMATIC TYPE COERCION (FORCED) OCCURS AFTER EVALUATION
BUT BEFORE THE VALUE IS STORED IF THE TYPES DIFFER FOR EXPRESSION AND
VARIABLE. THAT’S WHY TRY TO USE THE SAME DATA TYPES FOR THE VARIABLE
AND EXPRESSION.