다중 상속
- #include <iostream>
- using namespace std;
- class AAA{
- public:
- void String1(){
- cout<<"AAA::String1"<<endl;
- }
- };
- class BBB{
- public:
- void String2(){
- cout<<"BBB::String2"<<endl;
- }
- };
- class CCC : public AAA, public BBB{
- public:
- void ShowString(){
- String1();
- String2();
- }
- };
- int main(void)
- {
- CCC ccc;
- ccc.ShowString();
- return 0;
- }
다중 상속의 모호성
- #include <iostream>
- using namespace std;
- class AAA{
- public:
- void String(){
- cout<<"AAA::String"<<endl;
- }
- };
- class BBB{
- public:
- void String(){
- cout<<"BBB::String"<<endl;
- }
- };
- class CCC : public AAA, public BBB{
- public:
- void ShowString(){
- String(); // AAA::String();
- String(); // BBB::String();
- }
- };
- int main(void)
- {
- CCC ccc;
- ccc.ShowString();
- return 0;
- }
위의 소스 코드와 같이 다중 상속의 관계에서 AAA,BBB 클래스에 같은 이름을 가진 멤버 함수가 있다고 하면, 이때 모호성이 발생한다. 과연 이 String 함수는 어느 객체의 함수를 호출해 주는 것이냐 알수 없기 때문이다. 주석친 부분 처럼 범위 지정 연산자를 이용한 문제 해결 방법도 있지만, 아주 코드가 복잡해 지는걸 알수 있는것이다.
댓글 없음:
댓글 쓰기