티스토리 뷰
[ Pure Virtual Functions ]
class Animal{
public:
virtual void id() = 0;
};
public:
virtual void id() = 0;
};
- Function의 Body 생략.
- 이 Class를 상속받는 하위 Class는 이 Function을 사용할 때 Override를 해 주어야 한다.
[ Abstract Classes ]
- 하나 이상의 Pure Virtual Function을 가지는 Class.
- Base Class의 역할만 할 수 있다.
- 메인 Funcion에서 Object를 만들 수 없다.
- 상속받은 Class에서 Override(함수 재정의)를 하지 않으면, 그 Class도 Abstract Class이다.
[ 추상 클래스와 클래스의 상속, 가상 함수 사용 예제 ]
#include <string>
#include <iostream>
using namespace std;
class Pet{
public:
string name;
virtual void print() const;
};
class Dog : public Pet{
public:
string breed;
virtual void print() const;
};
int main()
{
Pet vpet;
Dog vdog;
vpet.name = "I am a pet.";
vdog.name = "I am a dog.";
vdog.breed = "Great Dane";
cout << vpet.name << endl; // Output: I am a pet.
vpet = vdog;
// type 호환성때문에 assign은 가능.
// vdog를 vpet에 넣지만, vpet의 크기에 맞게 잘라낸다고 생각하자.
cout << vpet.name << endl; // Output: I am a dog.
(Called slicing problem)
cout << vpet.breed; // error C2039: 'breed' : is not a member of 'Pet'
return 0;
}
#include <iostream>
using namespace std;
class Pet{
public:
string name;
virtual void print() const;
};
class Dog : public Pet{
public:
string breed;
virtual void print() const;
};
int main()
{
Pet vpet;
Dog vdog;
vpet.name = "I am a pet.";
vdog.name = "I am a dog.";
vdog.breed = "Great Dane";
cout << vpet.name << endl; // Output: I am a pet.
vpet = vdog;
// type 호환성때문에 assign은 가능.
// vdog를 vpet에 넣지만, vpet의 크기에 맞게 잘라낸다고 생각하자.
cout << vpet.name << endl; // Output: I am a dog.
(Called slicing problem)
cout << vpet.breed; // error C2039: 'breed' : is not a member of 'Pet'
return 0;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 윈도우느려짐
- Chao Phraya Express Boat
- 기가인터넷라이트
- 윈도우버벅임
- 인터넷속도측정
- 방콕
- Wat Arun
- Giga인터넷라이트
- 쿠알라룸프르
- 인터넷 품질 테스트
- 싱가포르공항
- 영상테마파크
- SK브로드밴드 기가인터넷
- 합천영상테마파크
- NIA스피드인터넷속도측정
- 유시민
- 싱가포르
- 42
- 인터넷 속도 테스트
- 인터넷 설치 후기
- 새벽사원
- GiGA인터넷
- 해외출장
- 윈도우업데이트후느려짐
- CSR 4.0
- 타 싸톤
- SK브로드밴드
- 기가인터넷
- 윈도우즈10업데이트
- 왓 포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함