Search
Duplicate
🔢

9장. 수업코드

생성일
2022/05/09 06:16
태그
C++
#include <iostream> using namespace std; class Base { public: virtual void f() { cout << "Base f()" << endl; } }; class Derived : public Base { public: virtual void f() { cout << "Derived::f() called" << endl; } }; int main() { Base b; Base *bp; bp = &b; bp->f(); Derived d; Derived* dp; dp = &d; dp->f(); bp = &d; //upcasting bp->f(); }
C++
복사
#include <iostream> using namespace std; class Shape { public: void paint(); virtual void draw() = 0; // 순수 가상함수 }; class Circle : public Shape { public: void draw(); }; class Line : public Shape { public: void draw(); }; class Rect : public Shape { public: void draw(); }; void Shape::paint() { draw(); } /* void Shape::draw() { cout << "Shape::draw()" << endl; } */ // 여기를 할 필요 없다 void Circle::draw() { cout << "원 그리기" << endl; } void Line::draw() { cout << "선 그리기" << endl; } void Rect::draw() { cout << "사각형 그리기" << endl; } int main() { Shape* paintPad[100]; paintPad[0] = new Line(); paintPad[1] = new Rect(); paintPad[2] = new Line(); paintPad[3] = new Circle(); paintPad[4] = new Circle(); int count = 5; for (int i = 0; i < count; i++) { paintPad[i]->paint(); } }
C++
복사