C + + (pronounced "C plus plus") is a statically typed, free-form, multi-paradigm, compiled, created for the purpose programming language. C + + is considered as an intermediate-level language, because it consists of a combination of high-level language features and low-level languages​​. This language developed by Bjarne Stroustrup in 1979 at Bell Labs as an enhancement to the C programming language and originally named "C with Classes". It was renamed to C + + in 1983.

C + + is widely used in the software industry, and remains one of the most popular languages ​​ever created.

It started as an additional language to C, first adding classes, then virtual functions, operator overloading, multiple inheritance, templates and exception handling among other features. After years of development, C + + programming language standard was ratified in 1998 as ISO / IEC 14882:1998. standards are still used today, but changed in 2003 with the technical corrigendum, ISO / IEC 14882:2003. Next the standard version (known sa C + +0 x) is still under development.

History



Bjarne Stroustrup began work on the 'C with Classes' in 1979. The idea to create a new language originated from Stroustrup experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that are very helpful for large software development, but the language was too slow for practical use, while BCPL fast but too low level suitable for large software development. When Stroustrup started working at AT & T Bell Labs, he analyzed the problem of the UNIX kernel to distributed computing. Given the experience at the time of preparing his Ph.D. thesis, Stroustrup began to increase the C language with Simula features. C was chosen because it is for public use, fast, portable and widely used. Besides C and Simula, other languages ​​that inspired him were ALGOL 68, Ada, CLU and ML. At first, class, derived class, strong type checking, inlining, and default argument features added to C via Cfront. The first commercial release occurred in October 1985.
In 1983, the name of the language changed from C with Classes to C + + (+ + be the operator of an increase in C and C + +). New features added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single line comment with two forward slashes (//). In 1985, the first edition of The C + + Programming Language was released, providing an important reference for the language, because there is no official standard. Release 2.0 C + + came in 1989. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C + + Reference Manual was published. This work became the basis for future standards. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.
As a language C + + standard library also evolved with it. In addition to the first C + + standard library was the stream I / O library which provided facilities to replace the traditional C functions like printf and scanf. Then, among the most significant additions to the standard library, is the Standard Template Library.
C + + continues to be used and is one of the preferred programming languages ​​to develop professional applications.
Etymology
According to Stroustrup: "The name signifies the evolutionary nature of the changes from C". During the C + + in the development period, the language has been called the "New C", then "C with Classes". Last name is credited to Rick Mascitti (mid 1983) and was first used in December 1983.
Philosophy
In The Design and Evolution of C + + (1994), Bjarne Stroustrup describes some rules that he used for the design of C + +:
* C + + is designed to be statically typed, general purpose as an efficient and portable language with C* C + + is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming and generic programming)* C + + is designed to give the programmer choice, even it allows the programmer to select one* C + + is designed to be compatible with C, thus providing a smooth transition from C* C + + avoids features that are not platform-specific or general purpose* C + + does not bring in overhead for features that are not used (with the "zero-overhead principle" Wink* C + + is designed to function without a sophisticated programming environment
In the C + + Object Model (Lippman, 1996) describes how the compiler can convert the C + + program statements into a layout in memory. Compiler writers, however, free to apply the standards in their own way.
Features
C + + syntax inherits most of C and C preprocessor. Here is a version of Bjarne Stroustrup Hello world program that uses C + + standard library stream facility to write messages to standard output:
# Include
int main (){std:: court <<"Hello, world! \ n";}

The terms in the virtual world really confusing and really exciting.
the early days when I started chatting I often use a phrase that should be in short with 3 letters.

"I'll back ya ..." -> Kl easier shortened to 'brb' which means' Be Right Back ", and still another bunch of terms that need to be me or you need to know.

This terms also applies if you join the community forums, mailing lists etc.. The following is a list of terms in the virtual world that I have outlined. (Copy paste from google)

*? = Huh?
*? 4U = Question for you
* 2L8 = Too late
* 2U2 = To you too
* Forgive me 4gm =
* 4RL? = For real?
* AAMOF = As a matter of fact
* AAYF = As always, your friend
* AFAIK = As far as I know
* AFK = Away from keyboard
* AKA = Also known as
* ASAP = As soon as possible
* ASL = Age, sex, location?
* = ASLP Age, sex, location, picture?
* ATM = At ​​the moment
* ATYS = Anything you say
* AWA = As well as
* B / C = Because
* B4 = Before
* B4N = Bye for now
* BAC = Back at computer
* BAK = Back at keyboard
* BBIAB = Be back in a bit
* BBL = Be back later
* BBS = Be back soon
* BC = Be cool
* BCNU = Be seeing you
* BD = Big deal
* BF = Boyfriend
* BFD = Big freakin 'deal
* BFN = Bye for now
* BIL = Brother in law
* BME = Based on my experience
* BOT = Back on topic
* BRB = Be right back
* BRH = Be right here
* BTDT = Been there, done that
* BTW = By the way
* BYTM = Better you than me
* CMIIW = Correct me if I'm wrong
* CU = See you
* CUL = Catch you later
* CUL8R = See you later
* CUS = See you soon
* CWOT = Complete waste of time
* CYA = See ya
* CYL = Catch ya later
* = Do not believe everything DBEYR you read
* = Do not hold your DHYB breath
* DIIK = Darned if I know
* DIY = Do it yourself
* = Do not quit your DQYDJ day job
* EAK = Eating at keyboard
EG = Evil grin *
* EOD = End of discussion
* EOL = End of lecture
* EOR = End of rant
* F = Female
* F2F = Face to face
* FAQ = Frequently asked questions
* FCOL = For crying out loud
* FIL = Father in law
* FITB = Fill in the blanks
* FNB = Football and beer
* FOCL = Falling off the chair laughing
* FOFL = Falling on the floor laughing
* Fubar = Fed up beyond all recognition
* FWIW = For what it's worth
* FYA = For your amusement
* FYI = For your information
* G = Grin
* G2G = Gotta go
* GA = Good afternoon
* GA = Go ahead
* GAL = Get a life
* GAS = Greetings and salutations
* GBH = Great big hug
* GE = Good evening
* GF = Girlfriend
* GFN = Gone for now
* GG = Good game
* GI = Good idea
* GICBTS = Gosh, I can not believe That stuff!
* GICNBY = Gosh, I can not believe you!
* GIWISI = Gee, I wish I said it
* GJ = Good job
* GL = Good luck
* GM = Good morning
* GM = Good move / match
* GMTA = Great Minds think alike
* GN = Good Night
* Gr8 = Great
* GTG = Got to go
* H = Hug
* H / O = Hold on
* H & K = Hugs and Kisses
* HAGD = Have a good day
* HAND = Have a nice day
* HB = Hug back
* HCIT = How cool is that?
* HF = Have fun
* HH = Ha-ha
* HHSF = Ha-ha, so funny
* HHVF = Ha-ha, very funny
* HO = Hold on
* HOAS = Hold on a second
* HTH = Hope this helps
* IAC = In any case
* IAG = It's all good
* IAGW = In a good way
* IB2D = I beg to differ
* IC = I see
* IC = In Character
* IDGI = I do not get it
* IDK = I do not know
* IDNDT = I did not do that
* IDNK = I do not know
* IIRC = If I remember entered correctly
* IK = I know
* IKWUM = I know why you mean
* IMAO = In my arrogant opinion
* IME = In my experience
* IMHBMAO = In my humble but most accurate opinion
* IMHO = in my humble opinion
* IMNSHO = in my not so humble opinion
* INRS = It's not rocket science
* IOW = In other words
* IRL = In real life
* IRSTBO = It really sucks the big one
* IS = I'm sorry
* ISWYM = I see what you mean
* J / K = Just kidding!
* J / P = Just playing
* JMHO = Just my humble opinion
* JTLYK = Just to let you know
* K = Okay
* KIR = keepin 'it real
* KISS = Keep it simple, stupid
* KIT = Keep in touch
* KWIM = Know what I mean?
* KYSOTI = Keep your stick on the ice
* L8R = Later
* LMK = Let me know
* LOL = Laugh out loud
* LTNS = Long time, no see
* LTR = Long Term Relationship
* LYK = Let you know
* LYLAB = Love you like a brother
* LYLAS = Love you like a sister
* LUM = Love you man
* M = Male
* M8 = Mate (friend)
* ME2 = Me too
* MIL = Mother in law
* MMA = Meet me at
* MMAMP = Meet me at my place
* MOO = My own opinion
* MYOB = Mind your own business
* N = In
* N / C = Not cool
* = Not too much N2M
* NBD = No big deal
* NE1 = Anyone
* NFW = No freakin 'way
* NLT = No later than
* NM = Nevermind
* NM = Not much
* NMH = Not much here
* NMJC = Nothing much, just chillin '
* NNITO = Not necessarily in That Order
* No1 = No one
* NOTTOMH = Not off the top of my head
* NOYB = None of your business
* NP = No problem
* Necessary NRN = No reply
* NVM = Nevermind
* NW = No way
* OIC = Oh, I see
* OMG = Oh my gosh
* OMOHOD = One minute, one hour, one day
* Onna = Oh no, not again
* OOC = Out of character
* OT = Off topic
* OT = Other topic
* OT = Over time
* OTOH = On the other hand
* PIMP = Pee in my pants
* PLZ = Please
* POS = Parent over shoulder
* PPL = People
* QT = Cutie
* RESQ = Rescue
* RFC = Request for comment
* RHIP = Rank has its privileges
* ROF = Rolling on the floor
* ROTFL = Rolling on the floor laughing
* RTFM = Read the flippin 'manual
* S / B = Should be
* S2R = Send to receive
* SCNR = Sorry, Could not resist
* SIL = Sister in law
* Skate Sk8 =
* Sly = Still love you
* SOS = Same old stuff
* SOS = sibling over shoulder
* SOS = Someone special
* SSDD = Same stuff, different day
* STR8 = Straight
* Weak = Sealed with a kiss
* SWALK = Sweet, with all love, kisses
* SWDYWTTA = So what do you want to talk about?
* Sysop = System Operators
* TBC = To be continued
* TC = Take care
* TC = That's cool
* TCO = Taken care off
* TGIF = Thank goodness it's Friday
* TIA = Thanks in advance
* THX = Thanks
* TMA = Take my advice
* TMI = Too much information
* TNX = Thanks
* = The other half anyway
* TTFN = Ta ta for now
* TTYL = Talk to you later
* Ttys = Talk to you soon
* TTYVS = Talk to you very soon
* TWIMC = To Whom it may concern
* TY = Thank you
* TYVM = Thank you very much
* U2 = You too
* UR = You are
* UR = Your
* URSKTM = You are so kind to me
* VBG = Very big grin
* W / = With
* W / E = Whatever
* W / O = Without
* W2F = Way too funny
* W8 = Wait
* W8AM = Wait a minute
* WAEFRD = When all else fails, read directions
* WB = Welcome back
* WB = Write back
* WC = Who cares
* WDMB = Will do my best
* WE = Whatever
* WNDITWB = We never did it this way before
* WRT = With regard to
* Wtg = Way to go!
* WWJD = What would Jesus do?
* XOXOXO = Hugs and kisses
* Y = Why?
* YMMV = Your mileage May Vary
* YRG = You are good!
* = You're very welcome YVW
* YW = You're welcome






Use case diagram represents the case and the actor with the interaction / relationship. Use case diagram describes the requirements / functional requirements that exist in the system, by connecting the actor and the system limits the response of the system.

The actor is a user system; "user" can mean a human being, a machine, or even another system. All of which are interconnected with the system from outside or limit the system is called an actor. Actors are generally associated with Use Cases.


Elements of Use Case Diagram

+ Actors

Actors could have used a system with a graphical user interface through the interface or other media. The interaction of actors with a use case scenarios are documented in the case and the functions of the system which should be available to meet user needs.

A construction is made on the use cases to describe and explain a user or another system plays a role when interacting with the system associated with it. This is kind of a unified system (entity) that are interconnected, but the user itself is the outside of the system. Actor could be represented by a human, external hardware, or other. Actors do not need to be shown physically specific. For example, a physical entity may use a different user and vice versa, an actor who has a role in the entity can play its role in the entity are different also.


Use Case

A use case is a UML modeling element that describes how a user system that play a role in the system will be interconnected with the system to implement a separate unit with outlines and indicates an interaction that has the intent or purpose to the end user (people, machines or other systems), and are required to leave the system until the state final: could the interaction to complete or return to its initial state (looping).

1. generally have a use case requirements and restrictions that outlines the features and rules that exist in the case of the operation.
2. A use case can be made into a sequence diagram that describes the events in the system (the behavior of the who, what and where in a system).
3. Use case generally describes the relationship with the system through the workflow so as to produce the final result.


Collaboration

Collaboration describes a set of co-operation of the roles and the connecting system. This is used to describe the joint performance of a specific system capabilities. Collaboration needs to define the roles and attributes required to fulfill a specific task or function. Although in practice a behavior and roles can involve many attributes, the main roles and needs in kebutuhanan-simplify and explain the behavior, so it can be reused. A Collaboration is often adopted a pattern on a variety of situations.


System Boundary

A boundary element signifies a system of classification, such as a class, component or subsystem, the use case is included into the system boundary. By drawing a boundary (boundary), classifying the elements do not reflect the ownership of the use case, but as marking the use of the elements on a use case.


Package

Connector of the Use case diagram


Use

Connectors use shows one element requires another to carry out some of the interactions. Relations use (consumption) does not specify how the target supplier is used, apart from the source client to use in the definition or implementation. A relationship is a relationship of dependency usage. You may use the relationship to the use of most use use case diagrams to model how actors use / carry out the functions of the system (Use Cases), or to describe the use of dependencies between classes or components.


Associate

Connectors association implies two model elements that have a relationship-usually applied as a single variable diinstansiasi in one class. This connector can incorporate the roles that called each end, the range, direction and boundaries. The Association is a common type of relationship between elements. For more than two elements, a better representation of the diagonal elements of the toolbox is used.


Generalize

Include

connectors include showing that the functional elements of the source entered the targeted element. Include connectors used in modeling use case for menngambarkan a use case that is inserted in it the behavior of another use case. The use of relationships to avoid include use case has the same subset of behavior; similar to the delegation that used in the model class.

Extend

Extend the connector is used to indicate an element that extends / increases from other behaviors. Expansion of the use case model is used to mark (a) a single use case extends the behavior of others. Expansion of the use case typically describes the workflow of other (additional)


Realize

Source object to implement or realize the goal. Realization is used to express traceability and completeness in the model-a business process or the requirements / needs are realized by one or more use cases are realized by several classes, components, and others. Through modeling abstraction level, ensuring a large picture of the memory system and reflects all the thumbnails and details that inhibit and explain it.