0% found this document useful (0 votes)
35 views

C++ Crash Course: For CS184 Sp08 Trevor Standley

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 fast performance like C while also offering high-level features from languages like Java. It is still widely used today and includes a robust standard template library.

Uploaded by

VeertjeMeneertje
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

C++ Crash Course: For CS184 Sp08 Trevor Standley

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 fast performance like C while also offering high-level features from languages like Java. It is still widely used today and includes a robust standard template library.

Uploaded by

VeertjeMeneertje
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

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 its 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 dont 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=newvector<int>();
vec->push_back(6);
vector<int> *vec2 = vec; //shallow copy
Java
Vector<integer>vec=newVector<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
wont 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
http://www.cplusplus.com/
http://en.wikipedia.org/wiki/C%2B%2B
http://en.wikipedia.org/wiki/Compari
son_of_Java_and_C%2B%2B

You might also like