본문 바로가기

virtual 함수

완전 가상함수(일명 개 가상함수) 가상 함수가 왜 필요한지, 이전 Study에서 배웠다~ 이번에 완전 가상 함수에 대해서 알아보자. 완전 가상함수는 함수의 정의 없이 함수의 유형만을 Base-class에 기제 해놓은 것을 말한다. virtual return-type Function-name() = 0; 자...이때 완전 가상 함수가 단 하나라도 있는 class를 추상 클레스 라고 불리우며, 이 추상 클레스는 객체 생성이 불가능 하다. 여기서 좀 어렵다. 객체도 생성 할 수 없는 얘를 가지고 멀 하라는거야? 라고 생각이 드는데 맞다. 별로 할껀 없다.ㅡ,.ㅡ;; 이런 클레스는 상속을 목적으로 만들어지며, 주로 인터페이스 만을 제공한다. 음...추상적으로 이해하기 위하여 얘기로 주절거린다면.... 다들 책이나 학교에서 상속에 대한 개념을 이.. 더보기
순수 가상 함수와 추상 클래스 순수 가상 함수 와 추상클래스 순수 가상 함수란? 함수 오버라이딩을 한후 Base class 의 은닉된 함수를 완전히 가리기 위하여 virtual 키워드로 함수부를 완전히 가리게 된다. 하지만 함수의 바디(body) 부분을 여전히 기제를 해야하는데 이는 실로 엄청나게 번거로운 방법이고 코드도 늘어가게 된다. 실행도 되지 않는 함수때문에 함수의 몸체 부분을 (return 문장만 쓰더라도 블럭을 잡아야 하니까 ) 모두 기제해줘야 하기 때문이다. 그래서 virtual void a() = 0; 와 같은 형식으로 해더 부분을 변경하여 코드를 작성하면 컴파일은 이 함수가 가상 함수라는걸 알고 제어를 오버라이딩 된곳으로 바로 옴기게 된다. 이때 이 함수를 순수 가상 함수라고 한다. 왜냐하면 함수의 몸체가 없기때문에 .. 더보기
virtual 함수 virtual 함수 virtual 함수란 말그대로 가상의 함수이다. 가상이란 실제로 없는데 있는척 훼이크 쓰는거다. virtual 함수는 함수 오버라이딩이 반드시 있어야 하는데 간단하게 오버라이딩을 해보면.. #include class AAA { public: void a() { cout 더보기