2010-07-03 5 views

답변

1

이 클래스의 두 stackfriend function 사이의 항등 연산자를 선언합니다. 이는 비공개 멤버에 액세스하는 데 필요합니다.

const stack<_Tp1, _Seq1>은 두 개의 인수가 있기 때문에 두 번 나타납니다.

는 물론 그것은

bool operator==(const stack<_Tp1, _Seq1>& y) const { return c == y.c; } 

로 작성하지만, C++ 표준 (§는 [stack.ops] (23.3.5.3.4))은 무료 기능으로이 연산자를 요구하는 것 같다 할 수 있습니다. - 비교하는 두 가지가

int strcmp(const char * a, const char * b); 

const를 숯불 * 두 번 반복 :에 이유를 묻는처럼

3

. _Tp1 템플릿 매개 변수는 스택에 저장되는 유형입니다. 비교되는 두 스택 모두 동일한 유형을 저장해야합니다.

표준 라이브러리 소스를 읽는 것이 이 아니라 C++을 배우는 좋은 방법임을 유의하십시오. this one과 같은 좋은 책이 필요합니다.

+0

책을 간략하게 살펴보면,이 책은 헤더와 impl 소스 코드를 제공하지 않는다. 이 표준 라이브러리를 사용하는 방법을 자세히 알려줍니다. 약간의 C++를 알고 실제 사용법에 익숙해지기 위해 실제 소스 코드로 들어가기를 원했습니다. – xyz

+0

@learner 아니요, 라이브러리 소스를 제공하지 않습니다. 제가 제안한 것처럼 특정 표준 라이브러리 구현을위한 소스를 조사하는 것은 라이브러리 사용법이나 일반적인 C++ 관용구를 배우는 좋은 방법이 아닙니다. 간단한 예제 - _Tp1이라는 이름은 자신의 코드에서 불법입니다. –

+0

좋습니다, 감사합니다. – xyz