I 기본 클래스 A로부터 파생 된 다형성 클래스있다 : I는 객체를 가리키는 배열을 반복 및 타입 동등한 확인 이제 원하는예상 당량 데이터 표현 형식 표현 유형 ID
class A {
public:
virtual void fV() { }
};
class B : public A {
public:
void mB() { }
};
class C : public A {
public:
void mC() { }
};
을 :
A *array[4] = { new B, new C, new C, new B };
for(int i = 0; i < 4; ++i) {
cout << i + 1 << ". " ;
(typeid(array[i]) == typeid(A)) ? cout << 1 << ' ': cout << 0 << ' ';
(typeid(*array[i]) == typeid(B)) ? cout << 1 << ' ': cout << 0 << ' ';
(typeid(*array[i]) == typeid(C)) ? cout << 1 << ' ': cout << 0 << ' ';
cout << endl;
}
결과는 다음과 같습니다
1. 0 1 0
2. 0 0 1
3. 0 0 1
4. 0 1 0
은 내가 처음에 형의 등가 기대 조건,하지만 결과로 나는 실패한 비교 (첫 번째 열에 0 0 0 0) 얻을. 두 번째 및 세 번째 조건의 결과는 예상대로입니다.
첫 번째 조건에는 어떤 문제가 있습니까?
감사합니다. Christophe! 그거 좋네. – Isi