반응형
안녕하세요 판타지코딩입니다!
오늘은 C++의 가상함수에 대해서 공부해 보겠습니다!
가상 함수란?
가상 함수는 부모 클래스의 함수를 자식 클래스에서 이름은 같지만, 내용은 다르게 정의할 것을 예상하고 'virtual' 키워드를 붙여서 정의합니다. 아래 예제에서 가상 함수에 대해서 알아보겠습니다.
가상 함수 예제
class student
{
public:
virtual void introduce()
{
cout << "학생입니다." << endl;
}
};
class teacher : public student
{
public:
virtual void introduce()
{
cout << "선생님입니다." << endl;
}
}
student 클래스와 teacher 클래스를 생성해서 introduce 함수로 출력하도록 했습니다. 이 때 student 클래스를 teacher 클래스에서 상속 받아 introduce 함수를 teacher 클래스에서 다시 정의했습니다.
student 클래스에서 introcude 함수를 정의할 때 'virtual' 키워드를 붙였습니다. 이것은 student 클래스를 상속받은 teacher 클래스에서 이름은 같되, 내용이 다른 함수를 정의하기 위한 것입니다. 그래서 teacher 클래스에서 이름이 같은 introduce 함수를 virtual 키워드를 붙여 정의했고, "선생님입니다."라는 문자를 출력합니다.
그럼 메인 함수를 생성해서 실행시켜 보겠습니다.
메인 함수 예제
int main()
{
student s;
teacher t;
s.introduce();
t.introduce();
return 0;
}
student 클래스의 객체 s와 teacher 클래스의 객체 t를 생성했습니다. 각 객체에서 introduce 함수를 호출했습니다. 실행 결과는 다음과 같습니다.
실행 결과
학생입니다.
선생님입니다.
이름은 같은 함수이지만, 각 클래스에서 정의한대로 결과가 출력되었습니다.
그럼 오늘은 가상 함수에 대해서 공부해 보았습니다. 가상 함수를 생성하는 방법을 이해하고, 코드를 작성해 보시면 좋겠습니다.
감사합니다!
반응형
'C++' 카테고리의 다른 글
10872 C++ 팩토리얼 문제 풀이 (0) | 2024.02.05 |
---|---|
공백을 포함한 문자열 입력 받기 (getline 함수 활용하기) (0) | 2024.02.05 |
C++ char형 배열 출력하기 (0) | 2023.05.22 |
C++ char형 배열을 쓰는 이유 (0) | 2023.05.17 |
C++ char형 공부하기! (0) | 2023.05.16 |