728x90 반응형 분류 전체보기465 [C++] 상속에서의 형변환 (💢static_cast다시보기) 업캐스팅 - 자식클래스에서 부모클래스로 올라가는 형변환 - 자식클래스 포인터 -> 부모 클래스 포인터 - 묵시적 형변환이 일어난다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 using namespace std; class Animal { public: float xPos=1; float yPos=2; }; class FlyingAnimal :public Animal { public: float zPos=3; }; void printAnimals(Animal* a, int n) { //a[]와 *a는 같다. 배열포인터 for (int i = 0; i 2022. 7. 12. [C++] 상속관계에서 생성/소멸자의 실행순서와 가상 소멸자 팥빙수 클래스를 만들어 보았다! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #include #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) #include using namespace std; class Ice { public: Ice() { cout 2022. 7. 12. [C++] 순수가상함수와 추상클래스 순수가상함수? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class A { public: virtual void f(){ cout 2022. 7. 12. [C++] 오버라이딩과 정적바인딩 / 가상함수와 동적바인딩 오버라이딩 d는 Base로부터 상속받았음에도 불구하고 d.a를 했을 때 10이 아니라 20이 출력된다. 이렇게 자식의 멤버를 부모클래스 보다 우선하는 것으로 오버라이딩이라고 한다. (override:우선하다) 만약에 Base에 접근하려면 d.Base::a를 출력하면 된다. 정적바인딩 c++에서는 다른 클래스를 포인터로 가리킬 수 있는데 단 상속받았을 때만 가능하다. (부모를 가리키는 포인터가 자식을 가리킬때) main함수를 보자. b는 Derived타입의 객체를 동적할당받았다. 그니까 그 주소가 b에 저장된 것이다. 이제 b에서 Print라는 멤버메서드를 호출하도록 하자. 근데 b는 포인터이기에 (*b).Print()를 하는데 이건 사실상 b->Print()와 같다. 우리가 화살표함수는 포인터를 통해 멤.. 2022. 7. 10. 이전 1 ··· 8 9 10 11 12 13 14 ··· 117 다음 728x90 반응형