CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int...

29
CS 216 Lecture 2 January 27 th , 2014

Transcript of CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int...

Page 1: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

CS 216Lecture 2

January 27th, 2014

Page 2: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Administrivia

Page 3: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

PA1.1 assigned

todayish (well,

more likely

tomorrow), due

2/9

Page 4: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Homework

review of C++

concepts posted

today

Page 5: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Lab posted

tomorrow

Page 6: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Object oriented

development

Page 7: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

1956 – FORTRAN

1972 – C

1982 – C++

Page 8: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

1956 – FORTRAN

1967 – Simula 67

1972 – C

1980 – Smalltalk

1982 – C++

Page 9: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Early OO

languages were

slow

Page 10: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Slow, however, is

relative.

Page 11: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

PDP11 - 1970

Page 12: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e
Page 13: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Ok, so we’re a

lot faster now,

why do we still

have C/C++?

Page 14: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Code is like

diamonds.

Page 15: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

This is why

software

engineering is

important!

Page 16: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

So what is object

oriented

development?

Page 17: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Quick review!

Page 18: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Classes and

objects

Page 19: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Encapsulation

Page 20: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Aggregation

“Has a”

Page 21: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Inheritance

“Is a”

Page 22: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Inheritance of

interface

Page 23: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e
Page 24: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Inheritance of

behavior (or

implementation)

Page 25: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e
Page 26: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e
Page 27: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

Back to

Encapsulation

Page 28: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e
Page 29: CS 216 - Labprotocols.netlab.uky.edu/~davidb/cs216/docs/cs216_2.pdfint readVa1ue(istream & is) int iVa1ue; is >> iVa1ue; return iVa1ue; int main(int char * argc, int ilntFromCons01e

PA1 Part 1:

C++-izing the

class hierarchy