스트림 삽입 연산자의 연관성은 rtl입니다.이 사실을 잊어 버리면 런타임 또는 논리 오류가 발생할 수 있습니다. 예를 들어 는 :무엇이 잘못 되었습니까? 연관성? 평가 명령? 주문을 변경하는 방법?
주요 기능에 1st-
int F()
{
static int internal_counter c=0;
return ++c;
}
:
//....here is main()
cout<<”1st=”<<F()<<”,2nd=”<<F()<<”,3rd=”<<F();
출력입니다 : 우리가 처음에 예상과 다른
1st=3,2nd=2,3rd=1
보기.
//
//... a Stack<DataType> class ……
//
Stack<int> st(10);
for(int i=1;i<11;i++)
st.push(i);
cout<<st.pop()<<endl<<st.pop()<<endl<<st.pop()<<endl<<st.pop()<<endl;
예상 출력이 뭔가 같은 :
10
9
8
7
하지만 우리가 가진 :
7
8
9
10
을
2nd- 우리가이 같은 스택 데이터 구조의 구현을 가지고 있다고 가정
<의 내부 버그가 없습니다.구현하지만 너무 혼란 스러울 수 있습니다 ... 그리고 마지막으로 [:-)] 내 질문 : 거기에 오버로드하여 연산자의 연관성을 변경할 수있는 방법이 있습니까?
이것이 역행 할 수 있다고 생각하십니까? 내 말은 오픈 소스 STL을 수정하거나 변경하여 주문을 변경할 수 있습니까?
@Sorush을 : – Potatoswatter