0% found this document useful (0 votes)
9 views18 pages

C++ Crash Course Overview

C++ is a programming language that combines high-level and low-level features. It was developed in 1979 as an enhancement to C for compatibility while adding object-oriented programming features like classes, polymorphism, and templates. C++ provides memory management features like automatic memory handling for objects initialized and deleted normally, while also allowing manual memory management using operators like new and delete. It includes a powerful Standard Template Library for containers, strings, and streams.

Uploaded by

1pradeep
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views18 pages

C++ Crash Course Overview

C++ is a programming language that combines high-level and low-level features. It was developed in 1979 as an enhancement to C for compatibility while adding object-oriented programming features like classes, polymorphism, and templates. C++ provides memory management features like automatic memory handling for objects initialized and deleted normally, while also allowing manual memory management using operators like new and delete. It includes a powerful Standard Template Library for containers, strings, and streams.

Uploaded by

1pradeep
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

C++ Crash Course

For CS184 Sp08


Trevor Standley
C++ Is ~(C+Java)/2
 Comprises a combination of both high level
and low level language features
 Developed in 1979 at Bell Labs as an
enhancement to the C programming language
 Developed for backward compatibility with C
 First named, “C with Classes”
 Blazing fast, just like C. Direct access to RAM
 Classes, polymorphism, exception handling,
strong typing, templates, operator overloading
etc
 No memory management
Common Complaints
 “C++ is not a high level language.”
 “Memory management… Yuck!”
 “I hear that it’s complicated, and messy.”
 “It was designed for compatibility with an
ancient language, certainly the designers of
modern languages could have done better
without this restriction.”
 “I don’t like C, why should I like C++?”
 “Who knows C++?”
Hello World
 #include <iostream>
 using namespace std;
 int main()
 {
 cout << “Hello World” << endl;
 return 0;
 }
Object vs Reference
 Consider the following:
 swap(int &a, int &b)
 {
 int t = a;
 a = b;
 b = t;
 }
Creating an Object
 C++
 vector<int> vec;
 vec.push_back(6);
 vector<int> vec2 = vec; //deep copy
 vector<int> *vec = new vector<int>();
 vec->push_back(6);
 vector<int> *vec2 = vec; //shallow copy
 Java
 Vector<integer> vec = new Vector<inte
ger>();
classes
Inheritance
Operator Overloading
Default Class Pieces
 foo has a destructor
 ~foo(){}
 a copy constructor
 foo(const foo &f){x = f.x;}
 an assignment operator
 foo operator = (const foo &f)
 {
 x = f.x;
 }
 Possibly others
Templates
Memory Management
 Take a deep breath, you probably
won’t have to do any.
 C++ uses the “Resource
Acquisition Is Initialization”
paradigm
 Clean up after yourself.
Memory Management 2
 Most memory is managed
automatically when an object is
initialized or goes out of scope
 The only exception is when the new
operator is used.
 Standard libraries manage their own
memory
 If you use new, use delete
The Syntax
 new returns a pointer to a location in
memory where the requested object
is
 int *x = new int[5]; // returns a
pointer to memory where 5 ints are
 delete [] x;
 x = new vector2d(3,5)
 delete x;
Memory Management Example 1
Memory Management Example 2
The Standard Template Library
 C++ has multiple inheritance, which
has little meaning in practice except
that the STL is awesome!
 std::vector: include <vector>
 std::list: include <list>
 std::string : include <string>
 std::stringstream : include
<sstream>
 Etc.
More Information
 [Link]
 [Link]
2B
 [Link]
son_of_Java_and_C%2B%2B

You might also like