Transcript Basic C++
MSc Bioinformatics
Basic C++
lectures 1 and 2
Basic C++
[email protected]
MSc Bioinformatics
Basic C++
Introduction
Daniel Soto
e-mail:
[email protected]
phone:
93 542 2634
address:
Departament de Tecnologia
Desp.374
Estació de França
Passeig de Circumval·lació, 8
08003 Barcelona
lectures 1 and 2
MSc Bioinformatics
Basic C++
lectures 1 and 2
Introduction
Philosophy: learn to program with objects
Bibliography
The C++ Programming Language, 3rd Edition
by Bjarne Stroustrup.
Addison Wesley Professional.
http://www.awprofessional.com/title/0201889544
“Aprenda C++ como si estuviera en primero”
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/
manualcpp.pdf
MSc Bioinformatics
Basic C++
Programming Languages
High-Level Languages
C=A+B
Assembly Languages
LOAD A
ADD B
STORE C
Machine Languages
+1300042774
+1400593419
+1200274027
lectures 1 and 2
MSc Bioinformatics
Basic C++
Programming paradigms
Imperative
Declarative
Functional
Object-Oriented
lectures 1 and 2
MSc Bioinformatics
Basic C++
lectures 1 and 2
Evolution of High-Level
Programming Languages
Functions and Methods
Libraries (packages, units, etc.)
Abstract Data Types
Objects
MSc Bioinformatics
Basic C++
lectures 1 and 2
C++ language
History
1980, creation of different flavours of “C with Classes”
1983, C++ evolution from C with inspiration in Simula67
1991, ANSI C++
C++ vs. C
C was chosen as the base language for C++ because it:
is versatile, terse, and relatively low-level;
is adequate for most systems programming tasks;
runs everywhere and on everything; and
fits into the UNIX programming environment.
MSc Bioinformatics
Basic C++
lectures 1 and 2
C++ language
What is C++?
C++ is a general-purpose programming language with
a bias towards systems programming that:
is a better C,
supports data abstraction,
supports object-oriented programming, and
supports generic programming.
C is retained as a subset inside C++
(this is not completely true!)
MSc Bioinformatics
Basic C++
C++ language
First program (C-style):
#include <stdio.h>
int main()
{
printf("Hello world!\n");
}
;
First program (Pure C++-style):
#include <iostream>
int main()
{
std::cout << "Hello world!\n";
}
;
lectures 1 and 2
MSc Bioinformatics
Basic C++
lectures 1 and 2
Compilation
C++
runtime
Edit
hello.cpp
Source File
compile
hello.o
Link
Object File
g++ hello.cpp
a.out
a.exe
Executable
MSc Bioinformatics
Basic C++
lectures 1 and 2
C/C++ Compatibility
General:
C++ provides the // comments
// a comment
return a; // another comment
C Code that is not C++:
Functions in C++ have strict syntax
main() {} // Valid in C, not valid in C++
int main() {;} // Valid in C++
Default types not assumed
const a=7;
// In C is type int, not in C++
Several new keywords in C++:
class, this, throw, public, protected, private, virtual, true, false, template,
inline, friend, new …
MSc Bioinformatics
Basic C++
Summary
C++ is a evolution of C. We can
continue to use C syntax. Formal
variations exist. We need to use a
different compiler and new file
extension. A new programming
paradigm is integrated into it.
lectures 1 and 2
MSc Bioinformatics
Basic C++
lectures 1 and 2
Summary
The paradigm of Object-Oriented
Programming
MSc Bioinformatics
Basic C++
lectures 1 and 2
OOP: Objective
Say to a machine what it need
to do (using objects).
In general this is programming
MSc Bioinformatics
Basic C++
OOP: approach
We can view a program as a
“object”
A
This object is the medium to do
work using a machine
lectures 1 and 2
MSc Bioinformatics
Basic C++
OOP: approach
Is the Object-Oriented
Programming a thing like…
Cooking programs with objects?
lectures 1 and 2
MSc Bioinformatics
Basic C++
OOP: approach
Create programs with pieces?
Work with programs?
lectures 1 and 2
MSc Bioinformatics
Basic C++
lectures 1 and 2
OOP: concepts
Object: a mix of data and procedures
Abstraction: view only a partial view of a thing
Message interchange: how to object delegates
a task to other object
Class: the model of the object
Instance: one agent (the object)
Heritage: How to an object is a “derivate”
from another object
Polymorphism: Different views of the same
object