Pages

C++


Note: C++ is a superset of C.

General

Nature: object oriented language;procedural language

History:An extension of C to provide object oriented programming constructs.

C++ was developed in 1983 by BjarneStroustrup at Bell Telephone Laboratories to extend C for object orientedprogramming.

Hello World example


#include

intmain(int argc, char *argv[])
{
   cout<< "Hello World" << endl;
   return0;
}

 

Structure

Format: free form

Lexicalelements

sourcecode character set:A C++ compiler may use any character set that includes at least the followingcharacters: the 52 upper case and lower case alphabetic characters ( A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b cd e f g h i j k l m n o p q r s t u v w x y z ), the 10 decimal digits (0 1 2 3 4 5 6 7 8 9 ), the blank or spacecharacter, and 29 designated graphic characters ( !# % ^ & * ( ) - _ + = ~ [ ] \ | ; : ' " { } , . < > / ?). Five formatting characters (backspace, horizontal tab, verticle tab, formfeed, and carriage return) are often used in C++ (formatting characters aretreated as spaces). The dollar sign ($) and the at sign (@) are also commonlyused (but not required by the standard). Some form of line separator isrequired, but it doesn’t have to be an actual character or character sequence.

Executioncharacter set: Theexecution character set for C++ is required to have the standard characters ofthe source code character set, plus a null character and a newline character.The null character must have the value 0 and is used to mark the end ofstrings. The newline character is used to divide character streams into linesduring input or output. Run time libraries may convert between the newlinecharacter and some other character(s) (or lack of characters) during execution(such as compacting the carriage return/line feed combination into the newlinecharacter or generating the newline character at the end of a logical record ortransforming between various record separators and the newline character).

Whitespace: White spacein C++ includes the blank (space character), horizontal tab, end-of-line,vertical tab, form feed, and comments. White space is ignored by the compiler(except when required to separate tokens or when used in a character or stringconstant), and therefore can be used freely by the programmer to make theprogram easy for a human to read. Some implementations of C++ treat nonstandardsource characters as either white space or line breaks.

Linetermination: Eachline in a C++ source program is terminated with an end-of-line character orcharacter sequence. Optionally, certain formatting characters (such as carriagereturn, form feed or vertical tab) can also terminate lines. An empty line is aline that consists of only a terminating character or character sequence orwhite space and line termination. A logical source line can be continued past aline termination by using the backslash character (\) or the ANSI C trigraph??/ immediately before the line termination. String constants and preprocessorcommand lines can cross line breaks through the use of logical source lines. Insome implementations of C++, tokens can also cross line breaks through the useof logical source lines.

Linelength: Many C++compilers impose a maximum line length (both for physical source lines and forlogical source lines).

Escapecharacters: Thebackslash character (\) is used as an escape character, allowing a programmerto include characters that would normally have a special meaning for thecompiler.

Alternativecharacters: SomeC++ compilers support the ANSI C trigraphs (see C).

Multibytecharacters: C++supports both wide characters and multibyte characters.

Widecharacters are binary characters that are more than one byte, typically usedfor expressing large alphabets.

Multibytecharacters are the external representation of a wide character, in either thesource or exeuction character set.

Comments: Comments are started by theoccurence of the two character sequence /* at any time other than within acharacter or string constant. Comments are terminated by the two charactersequence */. Comments can also start with // and end with the end of the line.

 

Tokens


AC++ compiler always collects characters into the longest possible tokens, evenif the result is not valid C++. White space always divides tokens. White spacemust be used to separate an identifier, reserved word, integer constant,floating point constant from a following identifier, reserved word, integerconstant, or floating point constant.

Operators: C++ has 15 simple operators ( ! % ^ & * - + = ~ | . < > / ? ), 11compound assignment operators ( += -= *= /= %=<<= >>= &= ^= |= == ), and 10 other compound operators (-> ++ -- << >> <= >= !=&& || ).

Separators:C++ has 9 separator tokens ( ( ) [ ] { } , ; :).