cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides...
TRANSCRIPT
![Page 1: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/1.jpg)
CS 225Data Structures
January 24 – Classes and Reference VariablesG Carl Evans
![Page 2: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/2.jpg)
#pragma once
class Cube {public:double getVolume();
private:
};
Cube.h1234567891011121314151617181920
#include "Cube.h"
double Cube::getVolume() {
}
Cube.cpp1234567891011121314151617181920
![Page 3: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/3.jpg)
Namespaces
![Page 4: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/4.jpg)
Namespacescs225
Cube
PNG
HSLAPixel
std
cout
vector
queue
…
...
![Page 5: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/5.jpg)
#pragma once
namespace cs225 {class Cube {public:double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"
namespace cs225 {double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}
}
Cube.cpp12345
678
9
1011121314151617
![Page 6: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/6.jpg)
#pragma once
namespace cs225 {class Cube {public:double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"
namespace cs225 {double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}
}
Cube.cpp12345
678
9
1011121314151617
12345678
#include "Cube.h"#include <iostream>
int main() {cs225::Cube c;std::cout << "Volume: " << c.getVolume() << std::endl;return 0;
}
![Page 7: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/7.jpg)
#include "Cube.h"#include <iostream>
int main() {cs225::Cube c;std::cout << "Volume: " << c.getVolume() << std::endl;return 0;
}
main.cpp12345678
![Page 8: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/8.jpg)
#include "Cube.h"#include <iostream>
int main() {cs225::Cube c;std::cout << "Volume: " << c.getVolume() << std::endl;return 0;
}
main.cpp12345678
![Page 9: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/9.jpg)
#include "Cube.h"#include <iostream>
int main() {cs225::Cube c;std::cout << "Volume: " << c.getVolume() << std::endl;return 0;
}
main.cpp12345678
![Page 10: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/10.jpg)
CS 225 – Office HoursLab Sections – Meet with your TA and CAs every week!
Open Office Hours – Held in the basement of Siebel Center by TAs and CAs, ramping up over the next week. First open office hours start soon. (Great place for both conceptual and programming questions!)
Faculty Office Hours –Starting next week.
Carl’s Office Hours: Thursday, 1pm-2pm, 3209 Siebel
Jing’s Office Hours: Monday 3-4pm, ECEB 2013
![Page 11: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/11.jpg)
CS 225 – Quiz 0First exam is coming up next week!
“Quiz 0”• Low-stress introduction to the CBTF exam environment.• On foundational knowledge you have from your
prerequisite classes.
Full Details:https://courses.engr.illinois.edu/cs225/fa2019/exams/
![Page 12: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/12.jpg)
CBTF-based ExamsAll CS 225 exams are held in the Computer Based Testing Facility (CBTF):- You can choose which day to take your exam within
the exam window for a given exam.
- Sign up for your exam here:https://cbtf.engr.illinois.edu/
![Page 13: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/13.jpg)
Constructor
![Page 14: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/14.jpg)
#pragma once
namespace cs225 {class Cube {public:Cube();double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"namespace cs225 {Cube::Cube() {
}
double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}
}
Cube.cpp1234567891011121314151617181920
![Page 15: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/15.jpg)
#pragma once
namespace cs225 {class Cube {public:Cube(double length);double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"namespace cs225 {Cube::Cube(double length) {
}
double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}
}
Cube.cpp1234567891011121314151617181920
![Page 16: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/16.jpg)
#pragma once
namespace cs225 {class Cube {public:Cube(double length);double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"namespace cs225 {Cube::Cube(double length) {length_ = length;
}
double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}
}
Cube.cpp1234567891011121314151617181920
1234567891011
#include "Cube.h"using cs225::Cube;#include <iostream>using std::cout;using std::endl;
int main() {Cube c;cout << "Volume: " << c.getVolume() << endl;return 0;
}
puzzle.cpp
![Page 17: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/17.jpg)
Hate Typing cout:: and cs225::?Useful Shortcut:using std::cout; // Imports cout into global scopeusing std::endl; // Imports endl into global scopeusing cs225::Cube; // Imports Cube into global scope
Strongly Discouraged Shortcutusing namespace std; // Imports all of std:: into
// global scope!// ...THOUSANDS of things!
![Page 18: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/18.jpg)
#pragma once
namespace cs225 {class Cube {public:
Cube(double length);double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"namespace cs225 {
Cube::Cube(double length) {length_ = length;
}
double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}}
Cube.cpp1234567891011121314151617181920
7891011
int main() {Cube c;cout << "Volume: " << c.getVolume() << endl;return 0;
}
puzzle.cpp
![Page 19: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/19.jpg)
#pragma once
namespace cs225 {class Cube {public:
Cube(double length);double getVolume();double getSurfaceArea();
private:double length_;
};}
Cube.h1234567891011121314151617181920
#include "Cube.h"namespace cs225 {
Cube::Cube(double length) {length_ = length;
}
double Cube::getVolume() {return length_ * length_ *
length_;}
doubleCube::getSurfaceArea() {return 6 * length_ *
length_;}}
Cube.cpp1234567891011121314151617181920
7891011
int main() {Cube c;cout << "Volume: " << c.getVolume() << endl;return 0;
}
puzzle.cpp
![Page 20: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/20.jpg)
Pointers and References
![Page 21: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/21.jpg)
Pointers and ReferencesA variable containing an instance of an object:
A reference variable of a Cube object:
A variable containing a pointer to a Cube object:
1 Cube s1;
1 Cube * s1;
1 Cube & s1;
![Page 22: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/22.jpg)
Reference VariableA reference variable is an alias to an existing variable.
Key Idea: Modifying the reference variable modifies the variable being aliased.
![Page 23: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/23.jpg)
Reference VariableA reference variable is an alias to an existing variable.
12345678910111213
#include <iostream>
int main() {int i = 7;int & j = i; // j is an alias of i
j = 4;std::cout << i << " " << j << std::endl;
i = 2;std::cout << i << " " << j << std::endl;return 0;
}
![Page 24: cs225sp20-02-classes-slidescourses.physics.illinois.edu/cs225/sp2020/assets/lectures/slides/cs225sp20-02...cs225sp20-02-classes-slides Author: G Carl Evans Created Date: 1/24/2020](https://reader034.vdocuments.net/reader034/viewer/2022050606/5fad389d4820f0560224316f/html5/thumbnails/24.jpg)
CS 225 – Things To Be DoingQuiz 0 starts on Friday, Jan. 31st
Ensure you sign up for your CBTF timeslot for Quiz 0!
lab_intro is due this Wednesday (Feb. 5th)Make sure to attend your lab section every week – they’re worth points and EC!
MP1 is outDue: Wedneday, Feb. 5th
Ensure you are on our PiazzaDetails on the course website: https://courses.engr.illinois.edu/cs225/
See you Monday!