나는 이런 종류의 물건에 관한 정보를 찾는 데 정말로 힘든 시간을 보내고 있습니다! 이 작동하지 않는 이유 :(다른 유형의 포인터를 비교하는 C++?
내가 혼란 스러워요 :
vector<B*> b;
vector<C*> c;
(B and C are subclasses of A)
(both are also initialized and contain elements etc etc...)
template <class First, class Second>
bool func(vector<First*>* vector1, vector<Second*>* vector2)
return vector1 == vector2;
컴파일이 돌아 오면이 작동하지 않을 이유가 포인터를 개최, 표시되지 않습니다
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
두 개의 벡터 포인터가 같은 주소 (-es)를 가리키는 지 비교하면 어떨까요?
포인터는 주소를 구현 정의 방식으로 유지합니다. 'reinterpret_cast <>'는 유형에 따라 실제 숫자 값을 자유롭게 바꿀 수 있습니다. –
C에서 정적 캐스트와 동적 캐스트 살펴보기 – user1939168
정확히 달성하려는 것은 무엇입니까? 한 유형의 벡터에 대한 포인터는 다른 유형의 벡터에 대한 포인터와 절대로 같아서는 안됩니다. 어쩌면'func' 메소드를 사용하여 코드를 게시 할 수 있습니다. – dunc123