STL 반복자을 사용하는 것 이외에 C++에서 상위 수준 목록과 유사한 개체를 나타내는 일반적인 방법이 있는지 알고 싶습니다. . (상위 레벨은 저수준 벡터와는 달리 데이터베이스 응답과 같은 복잡한 객체를 의미합니다). 아마도 C#의 IEnumerable과 비슷한 것입니다. 이것을 사용하는 프로젝트를 본 적이 있다면 참조 할 수 있습니까? 감사.C++에서 IEnumerable?
편집 : 명확한 설명이 왜이 문제에 관심이 있으며 질문의 일부가 아닙니다. 주석에서 질문했듯이 컴파일 타임 다형성과 런타임 사이에 나타나는 중요한 차이점을 설명하는 코드가 있습니다. 컴파일 시간 다형성 타입이 있다고 가정하면 기본적으로 개념 인 (인터페이스이 아님)이있는 두 가지 유형이 있음을 의미합니다.
template<class iterator>
void myalgorithm(iterator iter) {...}
을하지만 인터페이스와 런타임 다형성 유형이있을 때, IMyIterator
, 당신은 정상 "쓸 수있는 말 :이 다형성 유형의 알고리즘을 적용 할 경우, 는 일반적으로이있을 것이다 그
void myalgorithm(IMyIterator* iter) {...}
의 "비 일반적인 알고리즘이 두 기능을 실현에 큰 차이는 일반 언어 및 유형 VS 인터페이스 작업 IDE 지지체의 다른 레벨이다. 또 다른 요점은 모든 사람이 템플릿 프로그래밍에 익숙하지 않다는 것입니다. 마지막으로, 두 번째 경우는 구현을 숨길 수 있지만 첫 번째 경우는 헤더 전용입니다. 제발 내가 틀린 곳을 제게 보여줄 수 없다면 그들 사이에는 차이가 없다고 제발 말하지 마세요. 대안의
STL 반복자에 대해 싫어하는 특별한 이유가 있습니까? 아니면 그냥 호기심에서 벗어난 것입니까? – templatetypedef
관리되는 C++에서 예 (C# 및 VB.Net에서 볼 수있는 것과 동일한 인터페이스입니다). 표준 C++에서는 데이터베이스 조작을 처리하기 위해 다른 언어를 사용하는 것이 좋습니다. –
@templatetypedef : 둘 다. 당신이 정말로 관심이 있다면 왜 거기에 내 의견을 * 많이 * 참조하십시오 : http://stackoverflow.com/questions/4852658/polymorphic-iterators-in-c –