Getting started with c++

0 %
100 %
Information about Getting started with c++
Technology

Published on March 16, 2014

Author: mpredli01

Source: slideshare.net

Description

An introduction to the C++ programming language that includes a brief history of C++, how C++ evolved, and how to get started using C++.

1 Getting Started with C++ Trenton Computer Festival March 15, 2014 Michael P. Redlich @mpredli about.me/mpredli/ Sunday, March 16, 14

Who’s Mike? • BS in CS from • “Petrochemical Research Organization” • Ai-Logix, Inc. (now AudioCodes) • Amateur Computer Group of New Jersey • Publications • Presentations 2 Sunday, March 16, 14

Objectives (1) • What is C++? • Evolution of C++ • Features of C++ • Review of Object-Oriented Programming (OOP) 3 Sunday, March 16, 14

Objectives (2) • Getting Started with C++ • introduction to the C++ class mechanism • how to implement C++ classes • Live Demos (yea!) • C++ Resources 4 Sunday, March 16, 14

What is C++? • “...a general purpose programming language with a bias towards systems programming that • is a better C, • supports data abstraction, • supports object-oriented programming, • supports generic programming.” Bjarne Stroustrup Web Site, http://www.stroustrup.com/C++.html 5 Sunday, March 16, 14

Evolution of C++ (1) • Created by Bjarne Stroustrup • AT&T Labs • 1980 - originally named “C with Classes” • 1983 - redesigned and renamed to C++ • 1985 - available to the public 6 Sunday, March 16, 14

Evolution of C++ (2) • 1989 - further extensions added • templates and exception handling • 1998 - C++ standardized 7 Sunday, March 16, 14

Features of C++ • Object-Oriented Programming (OOP) Language • Pass-by-Reference • Operator Overloading • Generic Programming • Exception Handling • Namespaces • Default Arguments 8 Sunday, March 16, 14

OOP Review (1) • Programming Paradigm • Four (4) Main Attributes • data encapsulation • data abstraction • inheritance • polymorphism 9 Sunday, March 16, 14

OOP Review (2) • Abstract Data Type (ADT) • user-defined data type • use of objects through functions (methods) without knowing the internal representation 10 Sunday, March 16, 14

OOP Review (3) • Interface • functions (methods) provided in the ADT that allow access to data • Implementation • underlying data structure(s) and business logic within the ADT 11 Sunday, March 16, 14

OOP Review (4) • Class • Defines a model • Declares attributes • Declares behavior • Is an ADT • Object • Is an instance of a class • Has state • Has behavior • May have many unique objects of the same class 12 Sunday, March 16, 14

Advantages of OOP • Interface can (and should) remain unchanged when improving implementation • Encourages modularity in application development • Better maintainability of code • Code reuse • Emphasis on what, not how 13 Sunday, March 16, 14

Some C++ Keywords • class • new, delete • private, protected, public • try, throw, catch • friend • explicit • virtual • bool • inline 14 Sunday, March 16, 14

Classes (1) • A user-defined abstract data type • Extension of C structs • Contain: • constructor • destructor • data members and member functions (methods) 15 Sunday, March 16, 14

Classes (2) • Static/Dynamic object instantiation • Multiple Constructors: • Sports(void); • Sports(char *,int,int); • Sports(float,char *,int); 16 Sunday, March 16, 14

Classes (3) • Class scope: • scope resolution operator(::) • Abstract Classes • contain at least one pure virtual member function (C++) • contain at least one abstract method (Java) 17 Sunday, March 16, 14

Abstract Classes • Pure virtual member function (C++) • virtual void draw() = 0; • Abstract method (Java) • public abstract void draw(); 18 Sunday, March 16, 14

Class Inheritance 19 Sunday, March 16, 14

20 // Sports class (partial listing) class Sports { private: char *team; int win; public: Sports(void); Sports(char const *,int,int); ~Sports(void); // destructor int getWin() const; }; Sports::Sports(void) { // define default constructor here... } Sports::Sports(const char *team,int win,int loss) { // define primary constructor here... } int Sports::getWin() const { return win; } Sunday, March 16, 14

21 // Baseball class (partial listing) class Baseball : public Sports { public: Baseball(void); Baseball(char const *,int,int); ~Baseball(void); }; Baseball::Baseball(void) : Sports() { } Baseball::Baseball(const char *team,int win,int loss) : Sports(team,win,loss) { } inline Baseball::~Baseball(void) { } Sunday, March 16, 14

Static Instantiation • Object creation: • Baseball mets(“Mets”,97,65); • Access to public member functions: • mets.getWin(); // returns 97 22 Sunday, March 16, 14

Dynamic Instantiation • Object creation: • Baseball *mets = new Baseball(“Mets”,97,65); • Access to public member functions: • mets->getWin(); // returns 97 23 Sunday, March 16, 14

Deleting Objects Baseball mets(“Mets”,97,65); // object deleted when out of scope Baseball *mets = new Baseball(“Mets”,97,65); delete mets; // required call 24 Sunday, March 16, 14

Operator new (1) • Allocates memory on the free store (heap) • Memory size is calculated by the compiler • No more casting • Automatic call to the constructor • Used for built-in and user-defined data types 25 Sunday, March 16, 14

Operator new (2) int *var = new int; // int(); Sports *sports = new Sports(); // initializes an array of pointers to type int int *var = new int[10] 26 Sunday, March 16, 14

Operator delete (1) • Deallocates memory on the free store (heap) • Automatic call to the destructor • Must be used according to how operator new was used 27 Sunday, March 16, 14

Operator delete (2) int *var = new int; delete var; int *var = new int[10] delete[] var; 28 Sunday, March 16, 14

Inline Member Functions (1) • Used for short functions (≤ 5 statements) • Purpose: • speed • Good candidates for inline member functions are those that access data members 29 Sunday, March 16, 14

Inline Member Functions (2) • Explicit Use: • use keyword inline in the definition of member function • Implicit Use: • define the member function within its declaration without using the keyword inline 30 Sunday, March 16, 14

Live Demo! 31 Sunday, March 16, 14

Popular C++ Compilers 32 • Embarcadero C++ Builder XE5 • embarcadero.com/products/ cbuilder • MicrosoftVisual C++ • microsoft.com • Open Watcom 1.9 • openwatcom.org Sunday, March 16, 14

Local C++ User Groups • ACGNJ C++ Users Group • facilitated by Bruce Arnold • acgnj.barnold.us 33 Sunday, March 16, 14

Further Reading (1) 34 • C & C++ Code Capsules • Chuck Allison • freshsources.com • The C++ Programming Language • Bjarne Stroustrup • stroustrup.com/4th.html Sunday, March 16, 14

Further Reading (2) 35 • The Annotated C++ Reference Manual • Margaret Ellis and Bjarne Stroustrup • stroustrup.com/arm.html • 1997 C++ Public Review Document • C++ ISO JTC1/SC22/WG21 Committee • open-std.org/jtc1/sc22/open/ n2356 Sunday, March 16, 14

Upcoming Events (1) • Trenton Computer Festival • March 14-15, 2014 • tcf-nj.org • Emerging Technologies for the Enterprise • April 22-23, 2014 • phillyemergingtech.com 36 Sunday, March 16, 14

37 Upcoming Events (2) Sunday, March 16, 14

38 Thanks! mike@redlich.net @mpredli javasig.org Sunday, March 16, 14

Add a comment

Related presentations

Related pages

Getting Started with C or C++ - C programming.com - Learn ...

Getting Started with C or C++ Exactly How to Get Started with C/C++ Today Okay, let's cut to the chase--you want to learn to program in C/C++ and you want ...
Read more

Getting Started with C#

Getting Started with C#. Getting Started with C#. Getting Started with C#. What's New for Visual C#. Introduction to the C# Language and the .NET Framework.
Read more

Getting Started with C and C++ - Koding for Teams ...

In this guide we'll be introducing C and C++ and how to build your first programs in Koding. C and C++ are the reference languages in many domains, from ...
Read more

Getting started in C Programming - Stack Overflow

If you're starting C as a beginner, I would not recommend IDE's at all. IDE's solve your problems in an instant, give you early warnings for undefined ...
Read more

Getting Started with LINQ in C#

Getting Started with LINQ in Visual Basic. Enthält Links zu Themen über die Verwendung von LINQ mit Visual Basic. Siehe auch. LINQ (Language-Integrated ...
Read more

Getting Started with C.H.I.P. – Next Thing Co.

Getting Started with C.H.I.P. CHIP Documentation Site! Submit a request Sign in. Next Thing Co. C.H.I.P. Getting Started with C.H.I.P. ...
Read more

Getting Started - Amazon Web Services

Getting Started with the Tobii C-Series Getting Started Guide Celebrating Communication
Read more

Getting Started with C.L.A.S.S.

Getting Started with C.L.A.S.S. This webinar introduces the APDT's Canine Life And Social Skills program (C.L.A.S.S.) It will provide an overview of each ...
Read more

Getting Started with C# - Developer.com

Wherever required, I explain the features involved in C-Sharp by comparing them with Java. This will ensure smooth progress for experienced programmers.
Read more

C# Tutorial: Getting Started With C# - Udemy Blog ...

Note: Download the code of all the sample programs here. What Is C#? C# (‘C Sharp’) is one of the most important languages for programming on Windows.
Read more