:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/12/11 14:52
documentTag tagDoc (ptr_documentList); // ???
=> documentTag *tagDoc = new documentTag (ptr_documentList); 이런식으로... 하시면 될것 같습니다. 그런데.. 저것 보다는... switch (...) case DOCUMENT: collectAttributes(ptr_documentList); // ptr_documentList 업데이트 docBasePtr = new documentTag (ptr_documentList); attachToStructure(docBasePtr); // array 추가 break; ... 이렇게 하는 것이 좋을듯...
08/12/11 15:07
되네요... ㅠㅠ
한동안 헤메고 있었는데 감사합니다. 아 그리고 한가지 질문을 더 드리자면 switch case 안에서 tagDoc라는 새로운 변수 선언을 하면 딴 case들에서 "error C2360: initialization of 'tagDoc' is skipped by 'case' label" 라는 컴파일 에러가 나더군요. 왠지는 모르겠지만 그 주위에 if(1)를 넣어서 case DOCUMENT: if(1) collectAttributes(ptr_documentList); // collect attributes documentTag * tagDoc = new documentTag (ptr_documentList); // create new tag with given attributes attachToStructure(tagDoc); break; 이렇게 쓰니까 컴파일 에러가 안나고 제대로 되서 솔직히 큰 문제는 아닌데... 뭔가 꼼수를 쓰는 것 같아서;;;
08/12/11 15:15
nuzang님// 변수 scope 관련된 문제 입니다.
documentTag * tagDoc 의 Scope 가 case 안이 아니라 선언된 후 switch 를 빠져 나갈때 까지 입니다. 따라서 case DOCUMENT: 뿐만 아니라 다음 case 에도 영향을 주게 되는 것이죠... 제 생각으로는 error 라기 보다는 warning 이 발생해야 할 것 같은데... check option이 strict 하게 되어 있나 보네요...
|