What is C++, Features, IDEs

Slides:



Advertisements
Similar presentations
Writing HTML made easier Telerik School Academy HTML, CSS and JavaScript.
Advertisements

Judul Mata Kuliah Judul Pokok Bahasan 1/total Memory Interface.
JavaScript Development Tools
Nikolay Kostov Telerik Software Academy academy.telerik.com Technical Trainer About the Course.
Active Directory Domain Services Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Track Overview Telerik Software Academy Web Front-end Track.
Binary, Decimal and Hexadecimal Numbers Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Eclipse + Android SDK, VS + Windows Phone SDK Telerik Software Academy Hybrid Mobile Applications.
CSE 332: C++ program structure and development environment C++ Program Structure (and tools) Today we’ll talk generally about C++ development (plus a few.
Welcome to the JSON-stores world Learning & Development Telerik Software Academy.
Course Content, Evaluation, Exams Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Eclipse + Android SDK, VS + Windows Phone SDK Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Things you need to know George Georgiev Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer.
Group Policy Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Reverse polish notation, Operations with big numbers Ivelin Rachev Telerik Corporation “Baba Tonka” High School of Mathematics.
Telerik Software Academy ASP.NET MVC.
Design Patterns that ease the design by identifying a simple way to realize relationships between entities. Antony Jekov Telerik Software Academy academy.telerik.com.
The way to create cross-platform apps Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
Instructor: Tina Tian. About me Office: RLC 203A Office Hours: Wednesday 1:30 - 4:30 PM or .
Telerik Software Academy ASP.NET Web Forms.
Google APIs and Facebook API Ivaylo Kenov Penka Borukova Telerik Corporation Telerik Academy Students.
Amazon RDS (MySQL and Oracle) and SQL Azure Emil Tabakov Telerik Software Academy academy.telerik.com
Telerik Software Academy Mobile apps for iPhone & iPad.
Course Program, Evaluation, Exams, Resources Telerik Software Academy High-Quality Code.
Academy.telerik.com Class of , Fall 2013.
Telerik Software Academy Databases.
Google APIs and Facebook API Ivaylo Kenov Penka Borukova Telerik Corporation Telerik Academy Students.
Telerik Software Academy ASP.NET Web Forms.
CSE 232: C++ debugging in Visual Studio and emacs C++ Debugging (in Visual Studio and emacs) We’ve looked at programs from a text-based mode –Shell commands.
Learning & Development Team Telerik Software Academy.
What are WinJS and WinRT, Using the APIs in JavaScript George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
JavaScript Modules and Patterns Telerik Software Academy
The True power of dynamic web pages Learning & Development Team Telerik Software Academy.
Approximate string matching Evlogi Hristov Telerik Corporation Student at Telerik Academy.
George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net Using and creating Promises and Web Workers.
Build a simple UI for your application Learning & Development Team Telerik Software Academy.
Know your Tools! Telerik Software Academy JavaScript Fundamentals.
Ivaylo Kenov Telerik Software Academy Technical Assistant.
OPERATING SYSTEMS 1 - HARDWARE PIETER HARTEL 1. Hardware 2.
Process and Writing Styles Tina Stancheva Doroteya Agayna Telerik Software Academy academy.telerik.com Writing Documentation.
The PhoneGap History Doncho Minkov Telerik Software Academy Technical Trainer
Building Rock-Solid Software Svetlin Nakov Telerik Software Academy Manager Technical Training
Nencho Nenchev Doroteya Agayna Telerik Software Academy Telerik Support Leads.
Software Development Practices and Methodologies Learning & Development Telerik Software Academy.
Installation, Sample Usage, Strings and OOP Telerik Software Academy Software Quality Assurance.
In JavaScript Learning & Development Telerik Software Academy.
Services in AngularJS Telerik Software Academy
Svetlin Nakov Telerik Software Academy Manager Technical Training
What is Roslyn and how can we use it? Telerik Academy Plus C# 6.0 and Roslyn Seminar.
Splitting JavaScript into Dependent Modules Learning & Development Telerik Software Academy.
Building Rock-Solid Software Telerik Software Academy High-Quality Code.
What to expect from the new IDE Telerik Academy Plus Visual Studio 2015 and ASP.NET 5.
Building Rock-Solid Software Learning & Development Telerik Software Academy.
CSE 333 – SECTION 2 Memory Management. Questions, Comments, Concerns Do you have any? Exercises going ok? Lectures make sense? Homework 1 – START EARLY!
I have to use math? I am out of here… Telerik School Academy Unity 2D Game Development.
Virtualization Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Cross-platform mobile development. Simplified. Pavel Kolev Telerik Software Academy Software Developer
SaaS Cloud Platform Providing Database Access Through RESTful API Learning & Development Telerik Software Academy.
Shared Application Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Track Overview Learning & Development Team Telerik Software Academy.
Store Apps, Development Tools, App key features George Georgiev Telerik Corporation Technical Trainer itgeorge.net.
Server Roles and Features Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Binary, Decimal and Hexadecimal Numbers Telerik Software Academy C# Fundamentals – Part 2.
File and Print Services Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
Java Programming: Interfaces and Packages Vyacheslav Grebenyuk CTDE, AI dept., KhNURE.
Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
Command Line Arguments
Computer Terms Review from what language did C++ originate?
Presentation transcript:

What is C++, Features, IDEs Introduction to C++ What is C++, Features, IDEs Telerik Software Academy Learning and Development Telerik Software Academy academy.telerik.com

Table of Contents What is C++? C++ Basic Program Structure History, Concepts & Philosophy, Standards C++ Basic Program Structure Entry point, libraries, namespaces etc. C++ Compilers & IDEs Code::Blocks Visual Studio C++ Features C libs, OOP, Templates, Exceptions, Overloads

Fast, Mid-level, Multi-paradigm Language What is C++ Fast, Mid-level, Multi-paradigm Language

What is C++? (1) General purpose programming language Any field of application – science, business, etc. Compiles to binary Code directly executed on the hardware Statically typed All data is in predefined forms (data types) Data is represented in variables of data types A variable is of only 1 data type through its lifespan

What is C++? (2) Multi-paradigm Created by Bjarne Stroustrup Supports procedural programming (as in C) Supports object-oriented programming Some functional programming in C++11 (latest) Created by Bjarne Stroustrup Originally "C with Classes", later renamed Built over pure C, not fully compatible though

C++ Programming Model (1) Imperative, Multi-paradigm language Programmer can mix and match Low-level memory access (down to each byte) Procedural code (functions, memory pointers, etc.) Object-oriented code (classes, methods, objects, etc.)

C++ Philosophy Features immediately useful in the real world Programmers free to pick their own style Allowing useful features More important than preventing misuse Features you do not use you do not pay for Programmer can specify undefined behavior More: en.wikipedia.org/wiki/C++#Philosophy

C++ Standards C++ 98 – first standardized C++ version Still massively used today C++ 03 – minor revision of 98, bug-fixes C++ TR1 – specification of extensions to be included in next C++ version Not really a standard C++ 11 – latest official revision Many new features and improvements Lambdas, range-based loops, etc.

Entry point, Including libraries, Termination C++ Program Structure Entry point, Including libraries, Termination

C++ Program Structure Program entry point C++ is free form – any ordering of program components is acceptable C++ needs specific function to start from The main function – entry point of the program No other function can be named "main" Can receive command line parameters Termination – main returns, the program stops The return value of main is the "exit code“ 0 means no errors – informative, not obligatory

Hello World – Example This is a classical "Hello World" example in C++: #include <iostream> using namespace std; int main(int argc, char * argv[]) { cout<<"Hello World!"<<endl; return 0; }

Hello World – Example Include the input-output library Say we’re working with std namespace (so we don’t write std:: in front of everything) #include <iostream> using namespace std; int main(int argc, char * argv[]) { cout<<"Hello World!"<<endl; return 0; } Parameters in these brackets are optional "main" function – our entry point Print to the console For “main” 0 means everything went ok, terminating normally

C++ Hello World Live Demo

Compiling code, Integrated Develompent Environments C++ IDEs and Compilers Compiling code, Integrated Develompent Environments

C++ Compilers A C++ compiler turns C++ code to assembly i.e. translates C++ to machine language An IDE is software assisting programming Has a Compiler, Linker, Debugger, Code Editor Code organization, Tools, Diagnostics There are lots of C++ compilers Free, open-source, proprietary Most are embedded in IDEs Bjarne Stroustrup’s advice on picking an IDE and compiler: stroustrup.com/compilers.html

C++ IDEs – Code::Blocks Code::Blocks – free C & C++ IDE Used in International Olympiad in Informatics Comes with MinGW GCC compiler Currently no support for C++ 11 Lightweight Can compile single .cpp file Can be used for bigger projects with many files, references, etc.

Code::Blocks Live Demo

C++ IDEs – Visual Studio * C++ IDEs – Visual Studio Visual Studio – proprietary IDE for MS stack Supports latest C++ standards Single tool for: Writing code in many languages (C#, C++, …) Using different technologies (Web, WPF, …) For different platforms (.NET CF, Silverlight, …) Full integration of most development activities (coding, compiling, testing, debugging, deployment, version control, ...) (c) 2007 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

Visual Studio Live Demo

Notable C++ Features, Supported in all Standards

C++ Features Operators and operator overloading Memory management * C++ Features Operators and operator overloading Over 35 operators – arithmetic, bitwise, comparisons, logical, etc. User types can redefine operators Memory management Static allocation (compile-time, stack) Auto allocation (stack) Dynamic allocation – new, delete (heap) (c) 2007 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

C++ Features Classes & Objects Templates * C++ Features Classes & Objects Support for all OOP principles (inheritance, polymorpism, encapsulation, abstraction, virtuals) Templates Support for generic programming (c) 2007 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

C++ Features Standard library Exceptions Set of libraries, data structures and algorithms Largely based on the STL Exceptions Objects representing errors Can interrupt control flow and propagate to handlers Can be user-created

Introduction to C++ http://academy.telerik.com